From b39ac0b691eff08448013c27631ec72b5542ac0c Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Thu, 20 Jun 2024 14:31:41 -0700 Subject: [PATCH 01/10] first test --- src/snowflake/snowpark/dataframe.py | 56 ++++++++++++++++++++++++----- tests/ast/data/df_first.test | 12 +++++++ 2 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 tests/ast/data/df_first.test diff --git a/src/snowflake/snowpark/dataframe.py b/src/snowflake/snowpark/dataframe.py index 8650ce14c44..78563c2a712 100644 --- a/src/snowflake/snowpark/dataframe.py +++ b/src/snowflake/snowpark/dataframe.py @@ -90,8 +90,8 @@ decode_ast_response_from_snowpark, ) from snowflake.snowpark._internal.ast_utils import ( - set_src_position, get_symbol, + set_src_position, setattr_if_not_none, ) from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages @@ -2883,7 +2883,10 @@ def _join_dataframes_internal( @df_api_usage def with_column( - self, col_name: str, col: Union[Column, TableFunctionCall] + self, + col_name: str, + col: Union[Column, TableFunctionCall], + ast_stmt: proto.Expr = None, ) -> "DataFrame": """ Returns a DataFrame with an additional column with the specified name @@ -2925,11 +2928,14 @@ def with_column( col_name: The name of the column to add or replace. col: The :class:`Column` or :class:`table_function.TableFunctionCall` with single column output to add or replace. """ - return self.with_columns([col_name], [col]) + return self.with_columns([col_name], [col], ast_stmt=ast_stmt) @df_api_usage def with_columns( - self, col_names: List[str], values: List[Union[Column, TableFunctionCall]] + self, + col_names: List[str], + values: List[Union[Column, TableFunctionCall]], + ast_stmt: proto.Expr = None, ) -> "DataFrame": """Returns a DataFrame with additional columns with the specified names ``col_names``. The columns are computed by using the specified expressions @@ -3022,7 +3028,7 @@ def with_columns( ] # Put it all together - return self.select([*old_cols, *new_cols]) + return self.select([*old_cols, *new_cols], _ast_stmt=ast_stmt) @overload def count( @@ -3691,7 +3697,16 @@ def first( results. ``n`` is ``None``, it returns the first :class:`Row` of results, or ``None`` if it does not exist. """ + # AST. + stmt = self._session._ast_batch.assign() + ast = stmt.expr.sp_dataframe_first + if statement_params is not None: + ast.statement_params = statement_params + self.set_ast_ref(ast.df) + set_src_position(ast.src) + ast.block = block if n is None: + ast.num = 1 df = self.limit(1) add_api_call(df, "DataFrame.first") result = df._internal_collect_with_tag( @@ -3703,10 +3718,12 @@ def first( elif not isinstance(n, int): raise ValueError(f"Invalid type of argument passed to first(): {type(n)}") elif n < 0: + ast.num = n return self._internal_collect_with_tag( statement_params=statement_params, block=block ) else: + ast.num = n df = self.limit(n) add_api_call(df, "DataFrame.first") return df._internal_collect_with_tag( @@ -3729,6 +3746,18 @@ def sample( a :class:`DataFrame` containing the sample of rows. """ DataFrame._validate_sample_input(frac, n) + + # AST. + stmt = self._session._ast_batch.assign() + if frac is not None: + ast = stmt.expr.sp_dataframe_sample__double + ast.probability_fraction = frac + else: + ast = stmt.expr.sp_dataframe_sample__long + ast.num = n + self.set_ast_ref(ast.df) + set_src_position(ast.src) + sample_plan = Sample(self._plan, probability_fraction=frac, row_count=n) if self._select_statement: return self._with_plan( @@ -3737,7 +3766,8 @@ def sample( sample_plan, analyzer=self._session._analyzer ), analyzer=self._session._analyzer, - ) + ), + ast_stmt=stmt, ) return self._with_plan(sample_plan) @@ -4120,11 +4150,21 @@ def random_split( 2. When a weight or a normailized weight is less than ``1e-6``, the corresponding split dataframe will be empty. """ + # AST. + stmt = self._session._ast_batch.assign() + ast = stmt.expr.sp_dataframe_random_split + self.set_ast_ref(ast.df) + set_src_position(ast.src) if not weights: raise ValueError( "weights can't be None or empty and must be positive numbers" ) - elif len(weights) == 1: + ast.weights = weights + if seed: + ast.seed = seed + if statement_params: + ast.statement_params = statement_params + if len(weights) == 1: return [self] else: for w in weights: @@ -4133,7 +4173,7 @@ def random_split( temp_column_name = random_name_for_temp_object(TempObjectType.COLUMN) cached_df = self.with_column( - temp_column_name, abs_(random(seed)) % _ONE_MILLION + temp_column_name, abs_(random(seed)) % _ONE_MILLION, ast_stmt=stmt ).cache_result(statement_params=statement_params) sum_weights = sum(weights) normalized_cum_weights = [0] + [ diff --git a/tests/ast/data/df_first.test b/tests/ast/data/df_first.test new file mode 100644 index 00000000000..6062a9dd5c5 --- /dev/null +++ b/tests/ast/data/df_first.test @@ -0,0 +1,12 @@ +## TEST CASE + +df = session.table("test_table") + +df = df.first(2) + + +## EXPECTED OUTPUT + +res1 = session.table("test_table") + +res2 = res1.first(2) From 80f26af5b23398c738a639103ba4d6004c2eba76 Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Thu, 20 Jun 2024 15:36:10 -0700 Subject: [PATCH 02/10] added tests --- .../snowpark/_internal/proto/ast_pb2.py | 1180 +++++++++-------- tests/ast/data/df_first.test | 9 +- tests/ast/data/df_random_split.test | 19 + tests/ast/data/df_sample.test | 15 + 4 files changed, 638 insertions(+), 585 deletions(-) create mode 100644 tests/ast/data/df_random_split.test create mode 100644 tests/ast/data/df_sample.test diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index e2eff508d57..40257650e73 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -1,11 +1,18 @@ -# -*- coding: utf-8 -*- +# +# Copyright (c) 2012-2024 Snowflake Computing Inc. All rights reserved. +# + # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: proto/ast.proto +# source: Snowpark/proto/ast.proto """Generated protocol buffer code.""" +# flake8: noqa +from google.protobuf import ( + descriptor as _descriptor, + descriptor_pool as _descriptor_pool, + symbol_database as _symbol_database, +) from google.protobuf.internal import builder as _builder -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import symbol_database as _symbol_database + # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -13,587 +20,592 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto\"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\"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\"S\n\x19Tuple_SpVariant_SpVariant\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant\"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double\"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t\"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03\"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12\"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value\"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant\"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr\"\x9f\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\x42\t\n\x07variant\"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12\"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12\"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant\"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n\"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n\"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant\"Z\n\x13SpWindowSpecOrderBy\x12\"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr\"^\n\x17SpWindowSpecPartitionBy\x12\"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr\"Z\n\x18SpWindowSpecRangeBetween\x12\"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\"Y\n\x17SpWindowSpecRowsBetween\x12\"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08\"\"\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08\";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03\"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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\"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant\"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03\"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04\"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt\"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03\"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone\"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone\"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr\"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr\">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal\"\xef\x04\n\rBuiltInFnExpr\x12(\n\x0ftrait_string_fn\x18\x01 \x01(\x0b\x32\r.ast.StringFnH\x00\x12,\n\x0estring_collate\x18\x02 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12*\n\rstring_concat\x18\x03 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12.\n\x0fstring_contains\x18\x04 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x05 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x06 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x07 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x08 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\t \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\n \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\x0b \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\x0c \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\r \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant\"Z\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\t.ast.Expr\"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t\"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t\"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t\"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr\"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr\"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr\"\x94\x04\n\x08StringFn\x12,\n\x0estring_collate\x18\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12.\n\x0fstring_contains\x18\x02 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x03 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x04 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x05 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x06 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\x07 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\x08 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\t \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\n \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\x0b \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant\"B\n\tStringLen\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\"F\n\rStringToUpper\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\"F\n\rStringToLower\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\"d\n\x10StringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr\"b\n\x0eStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr\"u\n\x0cStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr\"c\n\x0eStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\"_\n\nStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\"a\n\x0cStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\"\x99\x01\n\x11StringRegexpCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06params\x18\x05 \x03(\x0b\x32\t.ast.Expr\"^\n\rStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x0e\x63ollation_spec\x18\x03 \x01(\t\">\n\x0cStringConcat\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07strings\x18\x02 \x03(\t\"\xbeK\n\x04\x45xpr\x12\"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\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\x0ftrait_string_fn\x18\x0e \x01(\x0b\x32\r.ast.StringFnH\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\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12\"\n\tsp_column\x18\x42 \x01(\x0b\x32\r.ast.SpColumnH\x00\x12-\n\x0fsp_column_alias\x18\x43 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x44 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x45 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x46 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18G \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18H \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18I \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18J \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18K \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18L \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18M \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18N \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18O \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18P \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18Q \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18R \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18S \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18T \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18U \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18V \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18W \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18X \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Y \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18Z \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18[ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\\ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18] \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18^ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18_ \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x61 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x63 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x64 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x65 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x66 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18g \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18i \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18j \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18k \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18l \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18m \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18n \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18o \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18q \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18r \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18s \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12/\n\x10sp_dataframe_ref\x18u \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18v \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18w \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18x \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18y \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18z \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18| \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18\x7f \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x80\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x82\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x83\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x84\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x85\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x86\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x87\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8a\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8b\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8c\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8d\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x8e\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x91\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x92\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x93\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x94\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x95\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x96\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x97\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x98\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x99\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9a\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9b\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9c\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\x9e\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\x9f\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa0\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa1\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa2\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa3\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa4\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa5\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa6\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa7\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xa8\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xa9\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xaa\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xab\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xac\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xad\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xae\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xaf\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb0\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb1\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb2\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb3\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb4\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb5\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb6\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb7\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type\"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr\"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr\"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03\"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult\"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\"\xba\x02\n\x0cSpColumnExpr\x12\"\n\tsp_column\x18\x01 \x01(\x0b\x32\r.ast.SpColumnH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t\"g\n\x08SpColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xcf\x06\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\x32\n\x12sp_column_try_cast\x18\x0f \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x10 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant\"\x87\x01\n\rSpColumnAlias\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03\"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t\"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr\"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType\"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType\"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr\"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t\"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\xa7\x1c\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x0f \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x10 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x11 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x12 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x13 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x14 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x15 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18\x17 \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x18 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x19 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1a \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12/\n\x10sp_dataframe_ref\x18\x1b \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1c \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1d \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18\x1e \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18\x1f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18# \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18$ \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18% \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18& \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18\' \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18( \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18) \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18* \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18+ \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18, \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18- \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18. \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18/ \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x30 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x31 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x32 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x33 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x34 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x35 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x36 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x37 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18\x38 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18\x39 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18: \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18; \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant\"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode\"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12\"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"5\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t\"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"Y\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t\"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x81\x01\n\x11SpDataframeNaDrop\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t\"\x84\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12.\n\tvalue_map\x18\x03 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant\"\x9e\x01\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x33\n\x0breplacement\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_SpVariant_SpVariant\"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode\"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\"\x94\x02\n\"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08\"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12\"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08\"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03\"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType\"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant\"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant\"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x04\"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant\"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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\"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t\"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t\"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double\"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant\"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08\"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x97\x01\n\"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t\"\x0e\n\x0cSpWindowType\"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type\"\xeaK\n\x0eHasSrcPosition\x12\"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x04 \x01(\x0b\x32\t.ast.ExprH\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\x0ftrait_string_fn\x18\x0f \x01(\x0b\x32\r.ast.StringFnH\x00\x12&\n\x0etrait_unary_op\x18\x10 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x11 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x12 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x13 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x14 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x15 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x16 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x17 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x18 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x19 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1a \x01(\x0b\x32\x0c.ast.BoolValH\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\x1a\n\x05py_fn\x18\x39 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18@ \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18\x41 \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12\"\n\tsp_column\x18\x43 \x01(\x0b\x32\r.ast.SpColumnH\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+\n\x0esp_column_cast\x18I \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18J \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18K \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18L \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18M \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18N \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18O \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18P \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18Q \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18R \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18S \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18T \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18U \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18V \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18W \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18X \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Y \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Z \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18[ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\\ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18] \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18^ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18_ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x65 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18g \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18j \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18k \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18l \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18m \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18n \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18o \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18r \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18s \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12/\n\x10sp_dataframe_ref\x18v \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18w \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18x \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18y \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18z \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18{ \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18| \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18} \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x31\n\x11sp_dataframe_show\x18~ \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x31\n\x11sp_dataframe_sort\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x80\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x82\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x83\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x84\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x85\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x86\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x87\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x88\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8a\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8b\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8c\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8d\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8e\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x8f\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x92\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x93\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x94\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x95\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x96\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x97\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x98\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x99\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9a\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9b\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9c\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9d\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9e\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa0\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa1\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa2\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa3\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa4\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa5\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa6\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa7\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa8\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xa9\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xaa\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xab\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xac\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xad\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xae\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xaf\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb0\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb1\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb2\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb3\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb4\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb5\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb6\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb7\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb8\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n\x18Snowpark/proto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto"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"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"S\n\x19Tuple_SpVariant_SpVariant\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"\xef\x04\n\rBuiltInFnExpr\x12(\n\x0ftrait_string_fn\x18\x01 \x01(\x0b\x32\r.ast.StringFnH\x00\x12,\n\x0estring_collate\x18\x02 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12*\n\rstring_concat\x18\x03 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12.\n\x0fstring_contains\x18\x04 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x05 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x06 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x07 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x08 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\t \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\n \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\x0b \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\x0c \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\r \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"Z\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\t.ast.Expr"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\x94\x04\n\x08StringFn\x12,\n\x0estring_collate\x18\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12.\n\x0fstring_contains\x18\x02 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x03 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x04 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x05 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x06 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\x07 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\x08 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\t \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\n \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\x0b \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"B\n\tStringLen\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToUpper\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToLower\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"d\n\x10StringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"b\n\x0eStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"u\n\x0cStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"c\n\x0eStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"_\n\nStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"a\n\x0cStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x99\x01\n\x11StringRegexpCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06params\x18\x05 \x03(\x0b\x32\t.ast.Expr"^\n\rStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x0e\x63ollation_spec\x18\x03 \x01(\t">\n\x0cStringConcat\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07strings\x18\x02 \x03(\t"\xb7L\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\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\x0ftrait_string_fn\x18\x0e \x01(\x0b\x32\r.ast.StringFnH\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\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x42 \x01(\x0b\x32\r.ast.SpColumnH\x00\x12-\n\x0fsp_column_alias\x18\x43 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x44 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x45 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x46 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18G \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18H \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18I \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18J \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18K \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18L \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18M \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18N \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18O \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18P \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18Q \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18R \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18S \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18T \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18U \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18V \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18W \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18X \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Y \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18Z \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18[ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\\ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18] \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18^ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18_ \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x61 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x63 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x65 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18g \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18j \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18k \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18l \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18m \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18n \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18o \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18r \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18s \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18v \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18w \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18x \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18y \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18{ \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18| \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18} \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x31\n\x11sp_dataframe_show\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x83\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x85\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x86\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x87\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x88\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x89\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8a\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8b\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8c\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8d\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8e\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x91\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x92\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x93\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x94\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x96\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x97\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x98\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x99\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9a\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9b\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9c\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9d\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9e\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa5\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa6\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa7\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa8\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa9\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xaa\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xab\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xad\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xae\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xaf\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb0\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb1\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb2\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb3\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb5\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb6\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb7\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb8\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb9\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\xba\x02\n\x0cSpColumnExpr\x12"\n\tsp_column\x18\x01 \x01(\x0b\x32\r.ast.SpColumnH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"g\n\x08SpColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\xcf\x06\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\x32\n\x12sp_column_try_cast\x18\x0f \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x10 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9e\x1d\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x0f \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x10 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x11 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x12 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x13 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x14 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x15 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x16 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x17 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18\x18 \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x19 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1a \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1b \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18\x1c \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18\x1d \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1e \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18! \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18" \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18% \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18& \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\' \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18( \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18) \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18* \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18+ \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18, \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18- \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18. \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18/ \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18\x30 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18\x31 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x32 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x33 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x34 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x35 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x36 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x37 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x38 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x39 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18: \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18; \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18< \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18= \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"5\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"Y\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x81\x01\n\x11SpDataframeNaDrop\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\x84\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12.\n\tvalue_map\x18\x03 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant"\x9e\x01\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x33\n\x0breplacement\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_SpVariant_SpVariant"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xa1\x01\n\x10SpDataframeFirst\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\r\n\x05\x62lock\x18\x04 \x01(\x08\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc7\x01\n\x16SpDataframeRandomSplit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07weights\x18\x03 \x03(\x04\x12)\n\x04seed\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x04"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xe3L\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x04 \x01(\x0b\x32\t.ast.ExprH\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\x0ftrait_string_fn\x18\x0f \x01(\x0b\x32\r.ast.StringFnH\x00\x12&\n\x0etrait_unary_op\x18\x10 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x11 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x12 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x13 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x14 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x15 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x16 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x17 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x18 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x19 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1a \x01(\x0b\x32\x0c.ast.BoolValH\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\x1a\n\x05py_fn\x18\x39 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18@ \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18\x41 \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x43 \x01(\x0b\x32\r.ast.SpColumnH\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+\n\x0esp_column_cast\x18I \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18J \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18K \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18L \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18M \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18N \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18O \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18P \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18Q \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18R \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18S \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18T \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18U \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18V \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18W \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18X \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Y \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Z \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18[ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\\ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18] \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18^ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18_ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x64 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x65 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x66 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18g \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18h \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18j \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18k \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18l \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18m \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18n \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18o \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18p \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18r \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18s \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18t \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18v \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18w \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18x \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18y \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18| \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18} \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x83\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x85\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x86\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x87\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8c\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8d\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8e\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8f\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x92\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x93\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x94\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x95\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x97\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x98\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x99\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9a\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9b\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9c\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9e\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9f\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa2\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa3\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa4\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa5\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa6\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa7\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa8\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa9\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xaa\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xab\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xad\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xae\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xaf\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xb0\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb1\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb2\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb3\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb5\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb6\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb7\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb8\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb9\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xba\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' +) _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.ast_pb2', 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' - _LIST_SPCOLUMNEXPR._serialized_start=56 - _LIST_SPCOLUMNEXPR._serialized_end=108 - _LIST_STRING._serialized_start=110 - _LIST_STRING._serialized_end=137 - _MAP_STRING_SPVARIANT._serialized_start=139 - _MAP_STRING_SPVARIANT._serialized_end=204 - _MAP_STRING_STRING._serialized_start=206 - _MAP_STRING_STRING._serialized_end=265 - _TUPLE_SPVARIANT_SPVARIANT._serialized_start=267 - _TUPLE_SPVARIANT_SPVARIANT._serialized_end=350 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start=352 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end=449 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_start=451 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_end=521 - _TUPLE_STRING_SPVARIANT._serialized_start=523 - _TUPLE_STRING_SPVARIANT._serialized_end=587 - _TUPLE_STRING_STRING._serialized_start=589 - _TUPLE_STRING_STRING._serialized_end=634 - _LANGUAGE._serialized_start=637 - _LANGUAGE._serialized_end=801 - _PYTHONLANGUAGE._serialized_start=803 - _PYTHONLANGUAGE._serialized_end=850 - _SCALALANGUAGE._serialized_start=852 - _SCALALANGUAGE._serialized_end=898 - _JAVALANGUAGE._serialized_start=900 - _JAVALANGUAGE._serialized_end=945 - _VERSION._serialized_start=947 - _VERSION._serialized_end=1016 - _PYTHONTIMEZONE._serialized_start=1018 - _PYTHONTIMEZONE._serialized_end=1102 - _PDINDEXEXPR._serialized_start=1104 - _PDINDEXEXPR._serialized_end=1217 - _ORD._serialized_start=1219 - _ORD._serialized_end=1246 - _FLEXORD._serialized_start=1248 - _FLEXORD._serialized_end=1279 - _KEY._serialized_start=1281 - _KEY._serialized_end=1308 - _PDPROJECTINDEXEXPR._serialized_start=1311 - _PDPROJECTINDEXEXPR._serialized_end=1624 - _ORDRANGE._serialized_start=1626 - _ORDRANGE._serialized_end=1712 - _FLEXORDRANGE._serialized_start=1714 - _FLEXORDRANGE._serialized_end=1804 - _KEYRANGE._serialized_start=1806 - _KEYRANGE._serialized_end=1867 - _ORDLIST._serialized_start=1869 - _ORDLIST._serialized_end=1903 - _FLEXORDLIST._serialized_start=1905 - _FLEXORDLIST._serialized_end=1943 - _KEYLIST._serialized_start=1945 - _KEYLIST._serialized_end=1979 - _BOOLFILTERLIST._serialized_start=1981 - _BOOLFILTERLIST._serialized_end=2024 - _SPFLATTENMODE._serialized_start=2026 - _SPFLATTENMODE._serialized_end=2151 - _SPGROUPINGSETS._serialized_start=2153 - _SPGROUPINGSETS._serialized_end=2207 - _SPSAVEMODE._serialized_start=2210 - _SPSAVEMODE._serialized_end=2369 - _SPJOINTYPE._serialized_start=2372 - _SPJOINTYPE._serialized_end=2666 - _SPWINDOWSPECEXPR._serialized_start=2669 - _SPWINDOWSPECEXPR._serialized_end=3130 - _SPWINDOWSPECORDERBY._serialized_start=3132 - _SPWINDOWSPECORDERBY._serialized_end=3222 - _SPWINDOWSPECPARTITIONBY._serialized_start=3224 - _SPWINDOWSPECPARTITIONBY._serialized_end=3318 - _SPWINDOWSPECRANGEBETWEEN._serialized_start=3320 - _SPWINDOWSPECRANGEBETWEEN._serialized_end=3410 - _SPWINDOWSPECROWSBETWEEN._serialized_start=3412 - _SPWINDOWSPECROWSBETWEEN._serialized_end=3501 - _SPTIMESTAMPTIMEZONE._serialized_start=3504 - _SPTIMESTAMPTIMEZONE._serialized_end=3691 - _SPDATATYPE._serialized_start=3694 - _SPDATATYPE._serialized_end=4496 - _SPARRAYTYPE._serialized_start=4498 - _SPARRAYTYPE._serialized_end=4560 - _SPCOLUMNIDENTIFIER._serialized_start=4562 - _SPCOLUMNIDENTIFIER._serialized_end=4596 - _SPDECIMALTYPE._serialized_start=4598 - _SPDECIMALTYPE._serialized_end=4647 - _SPMAPTYPE._serialized_start=4649 - _SPMAPTYPE._serialized_end=4748 - _SPSTRINGTYPE._serialized_start=4750 - _SPSTRINGTYPE._serialized_end=4809 - _SPSTRUCTFIELD._serialized_start=4811 - _SPSTRUCTFIELD._serialized_end=4932 - _SPSTRUCTTYPE._serialized_start=4934 - _SPSTRUCTTYPE._serialized_end=5004 - _SPTIMESTAMPTYPE._serialized_start=5006 - _SPTIMESTAMPTYPE._serialized_end=5068 - _SPVECTORTYPE._serialized_start=5070 - _SPVECTORTYPE._serialized_end=5132 - _SPVARIANT._serialized_start=5135 - _SPVARIANT._serialized_end=5841 - _SPVARIANT_OBJECT._serialized_start=5843 - _SPVARIANT_OBJECT._serialized_end=5898 - _SPVARIANT_LIST._serialized_start=5900 - _SPVARIANT_LIST._serialized_end=5951 - _SPVARIANT_TIMESTAMP._serialized_start=5953 - _SPVARIANT_TIMESTAMP._serialized_end=5985 - _SPVARIANT_DATE._serialized_start=5987 - _SPVARIANT_DATE._serialized_end=6014 - _SPVARIANT_TIME._serialized_start=6016 - _SPVARIANT_TIME._serialized_end=6043 - _SPVARIANT_BYTES._serialized_start=6045 - _SPVARIANT_BYTES._serialized_end=6073 - _SPVARIANT_STRING._serialized_start=6075 - _SPVARIANT_STRING._serialized_end=6104 - _SPVARIANT_BOOL._serialized_start=6106 - _SPVARIANT_BOOL._serialized_end=6133 - _SPVARIANT_BIGINT._serialized_start=6135 - _SPVARIANT_BIGINT._serialized_end=6164 - _SPVARIANT_BIGDECIMAL._serialized_start=6166 - _SPVARIANT_BIGDECIMAL._serialized_end=6199 - _SPVARIANT_INT._serialized_start=6201 - _SPVARIANT_INT._serialized_end=6227 - _SPVARIANT_FLOAT._serialized_start=6229 - _SPVARIANT_FLOAT._serialized_end=6257 - _SPVARIANT_DOUBLE._serialized_start=6259 - _SPVARIANT_DOUBLE._serialized_end=6288 - _SPROW._serialized_start=6290 - _SPROW._serialized_end=6325 - _SRCPOSITION._serialized_start=6327 - _SRCPOSITION._serialized_end=6434 - _VARID._serialized_start=6436 - _VARID._serialized_end=6462 - _REQUEST._serialized_start=6464 - _REQUEST._serialized_end=6576 - _RESPONSE._serialized_start=6578 - _RESPONSE._serialized_end=6615 - _CONST._serialized_start=6618 - _CONST._serialized_end=7305 - _NONEVAL._serialized_start=7307 - _NONEVAL._serialized_end=7347 - _NULLVAL._serialized_start=7349 - _NULLVAL._serialized_end=7389 - _BOOLVAL._serialized_start=7391 - _BOOLVAL._serialized_end=7442 - _INT32VAL._serialized_start=7444 - _INT32VAL._serialized_end=7496 - _INT64VAL._serialized_start=7498 - _INT64VAL._serialized_end=7550 - _FLOAT64VAL._serialized_start=7552 - _FLOAT64VAL._serialized_end=7606 - _BIGINTVAL._serialized_start=7608 - _BIGINTVAL._serialized_end=7661 - _BIGDECIMALVAL._serialized_start=7663 - _BIGDECIMALVAL._serialized_end=7748 - _STRINGVAL._serialized_start=7750 - _STRINGVAL._serialized_end=7803 - _BINARYVAL._serialized_start=7805 - _BINARYVAL._serialized_end=7858 - _TIMESTAMPVAL._serialized_start=7860 - _TIMESTAMPVAL._serialized_end=7916 - _DATEVAL._serialized_start=7918 - _DATEVAL._serialized_end=7969 - _TIMEVAL._serialized_start=7971 - _TIMEVAL._serialized_end=8022 - _PYTHONTIMESTAMPVAL._serialized_start=8025 - _PYTHONTIMESTAMPVAL._serialized_end=8218 - _PYTHONDATEVAL._serialized_start=8220 - _PYTHONDATEVAL._serialized_end=8308 - _PYTHONTIMEVAL._serialized_start=8311 - _PYTHONTIMEVAL._serialized_end=8457 - _FNVAL._serialized_start=8459 - _FNVAL._serialized_end=8538 - _IFEXPR._serialized_start=8540 - _IFEXPR._serialized_end=8661 - _SOMEVAL._serialized_start=8663 - _SOMEVAL._serialized_end=8725 - _TUPLEVAL._serialized_start=8727 - _TUPLEVAL._serialized_end=8791 - _LISTVAL._serialized_start=8793 - _LISTVAL._serialized_end=8856 - _SEQMAPVAL._serialized_start=8858 - _SEQMAPVAL._serialized_end=8928 - _BUILTINFNEXPR._serialized_start=8931 - _BUILTINFNEXPR._serialized_end=9554 - _APPLYEXPR._serialized_start=9556 - _APPLYEXPR._serialized_end=9646 - _PYFN._serialized_start=9648 - _PYFN._serialized_end=9728 - _SNOWFLAKEUDF._serialized_start=9730 - _SNOWFLAKEUDF._serialized_end=9805 - _SNOWFLAKESPROC._serialized_start=9807 - _SNOWFLAKESPROC._serialized_end=9884 - _UNARYOP._serialized_start=9886 - _UNARYOP._serialized_end=9956 - _BINOP._serialized_start=9959 - _BINOP._serialized_end=10413 - _NOT._serialized_start=10415 - _NOT._serialized_end=10479 - _AND._serialized_start=10481 - _AND._serialized_end=10565 - _OR._serialized_start=10567 - _OR._serialized_end=10650 - _EQ._serialized_start=10652 - _EQ._serialized_end=10735 - _NEQ._serialized_start=10737 - _NEQ._serialized_end=10821 - _LT._serialized_start=10823 - _LT._serialized_end=10906 - _LEQ._serialized_start=10908 - _LEQ._serialized_end=10992 - _GT._serialized_start=10994 - _GT._serialized_end=11077 - _GEQ._serialized_start=11079 - _GEQ._serialized_end=11163 - _NEG._serialized_start=11165 - _NEG._serialized_end=11229 - _ADD._serialized_start=11231 - _ADD._serialized_end=11315 - _SUB._serialized_start=11317 - _SUB._serialized_end=11401 - _MUL._serialized_start=11403 - _MUL._serialized_end=11487 - _DIV._serialized_start=11489 - _DIV._serialized_end=11573 - _MOD._serialized_start=11575 - _MOD._serialized_end=11659 - _POW._serialized_start=11661 - _POW._serialized_end=11745 - _BITAND._serialized_start=11747 - _BITAND._serialized_end=11834 - _BITOR._serialized_start=11836 - _BITOR._serialized_end=11922 - _BITXOR._serialized_start=11924 - _BITXOR._serialized_end=12011 - _RANGEVAL._serialized_start=12013 - _RANGEVAL._serialized_end=12130 - _STRINGFN._serialized_start=12133 - _STRINGFN._serialized_end=12665 - _STRINGLEN._serialized_start=12667 - _STRINGLEN._serialized_end=12733 - _STRINGTOUPPER._serialized_start=12735 - _STRINGTOUPPER._serialized_end=12805 - _STRINGTOLOWER._serialized_start=12807 - _STRINGTOLOWER._serialized_end=12877 - _STRINGSTARTSWITH._serialized_start=12879 - _STRINGSTARTSWITH._serialized_end=12979 - _STRINGENDSWITH._serialized_start=12981 - _STRINGENDSWITH._serialized_end=13079 - _STRINGSUBSTR._serialized_start=13081 - _STRINGSUBSTR._serialized_end=13198 - _STRINGCONTAINS._serialized_start=13200 - _STRINGCONTAINS._serialized_end=13299 - _STRINGLIKE._serialized_start=13301 - _STRINGLIKE._serialized_end=13396 - _STRINGREGEXP._serialized_start=13398 - _STRINGREGEXP._serialized_end=13495 - _STRINGREGEXPCOUNT._serialized_start=13498 - _STRINGREGEXPCOUNT._serialized_end=13651 - _STRINGCOLLATE._serialized_start=13653 - _STRINGCOLLATE._serialized_end=13747 - _STRINGCONCAT._serialized_start=13749 - _STRINGCONCAT._serialized_end=13811 - _EXPR._serialized_start=13814 - _EXPR._serialized_end=23476 - _REF._serialized_start=23478 - _REF._serialized_end=23542 - _CASTEXPR._serialized_start=23544 - _CASTEXPR._serialized_end=23631 - _PDDATAFRAME._serialized_start=23634 - _PDDATAFRAME._serialized_end=23783 - _PDDROPNA._serialized_start=23786 - _PDDROPNA._serialized_end=23928 - _PDDATAFRAMEGETITEM._serialized_start=23930 - _PDDATAFRAMEGETITEM._serialized_end=24031 - _PDDATAFRAMESETITEM._serialized_start=24033 - _PDDATAFRAMESETITEM._serialized_end=24156 - _PDDATAFRAMELOC._serialized_start=24158 - _PDDATAFRAMELOC._serialized_end=24280 - _PDDATAFRAMEILOC._serialized_start=24282 - _PDDATAFRAMEILOC._serialized_end=24405 - _PDREPR._serialized_start=24407 - _PDREPR._serialized_end=24521 - _PDREPRRESULT._serialized_start=24523 - _PDREPRRESULT._serialized_end=24640 - _RESULT._serialized_start=24643 - _RESULT._serialized_end=24801 - _EVALRESULT._serialized_start=24804 - _EVALRESULT._serialized_end=25576 - _EVALOK._serialized_start=25578 - _EVALOK._serialized_end=25658 - _ERROR._serialized_start=25660 - _ERROR._serialized_end=25750 - _SESSIONRESETREQUIREDERROR._serialized_start=25752 - _SESSIONRESETREQUIREDERROR._serialized_end=25820 - _SPCOLUMNEXPR._serialized_start=25823 - _SPCOLUMNEXPR._serialized_end=26137 - _SPCOLUMNREF._serialized_start=26139 - _SPCOLUMNREF._serialized_end=26195 - _SPCOLUMN._serialized_start=26197 - _SPCOLUMN._serialized_end=26300 - _SPCOLUMNSQLEXPR._serialized_start=26302 - _SPCOLUMNSQLEXPR._serialized_end=26411 - _SPCOLUMNFN._serialized_start=26414 - _SPCOLUMNFN._serialized_end=27261 - _SPCOLUMNALIAS._serialized_start=27264 - _SPCOLUMNALIAS._serialized_end=27399 - _SPCOLUMNAPPLY_INT._serialized_start=27401 - _SPCOLUMNAPPLY_INT._serialized_end=27488 - _SPCOLUMNAPPLY_STRING._serialized_start=27490 - _SPCOLUMNAPPLY_STRING._serialized_end=27582 - _SPCOLUMNASC._serialized_start=27584 - _SPCOLUMNASC._serialized_end=27701 - _SPCOLUMNBETWEEN._serialized_start=27704 - _SPCOLUMNBETWEEN._serialized_end=27840 - _SPCOLUMNCAST._serialized_start=27842 - _SPCOLUMNCAST._serialized_end=27940 - _SPCOLUMNTRYCAST._serialized_start=27942 - _SPCOLUMNTRYCAST._serialized_end=28043 - _SPCOLUMNDESC._serialized_start=28045 - _SPCOLUMNDESC._serialized_end=28163 - _SPCOLUMNEQUALNAN._serialized_start=28165 - _SPCOLUMNEQUALNAN._serialized_end=28238 - _SPCOLUMNEQUALNULL._serialized_start=28240 - _SPCOLUMNEQUALNULL._serialized_end=28338 - _SPCOLUMNIN_DATAFRAME._serialized_start=28340 - _SPCOLUMNIN_DATAFRAME._serialized_end=28451 - _SPCOLUMNIN_SEQ._serialized_start=28453 - _SPCOLUMNIN_SEQ._serialized_end=28551 - _SPCOLUMNISNOTNULL._serialized_start=28553 - _SPCOLUMNISNOTNULL._serialized_end=28627 - _SPCOLUMNISNULL._serialized_start=28629 - _SPCOLUMNISNULL._serialized_end=28700 - _SPCOLUMNNAME._serialized_start=28702 - _SPCOLUMNNAME._serialized_end=28786 - _SPCOLUMNOVER._serialized_start=28788 - _SPCOLUMNOVER._serialized_end=28901 - _SPCOLUMNWITHINGROUP._serialized_start=28903 - _SPCOLUMNWITHINGROUP._serialized_end=29022 - _SPDATAFRAMEEXPR._serialized_start=29025 - _SPDATAFRAMEEXPR._serialized_end=32648 - _SPDATAFRAMEREF._serialized_start=32650 - _SPDATAFRAMEREF._serialized_end=32721 - _SPDATAFRAMESHOW._serialized_start=32723 - _SPDATAFRAMESHOW._serialized_end=32795 - _SPCREATEDATAFRAME._serialized_start=32798 - _SPCREATEDATAFRAME._serialized_end=32927 - _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start=32930 - _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end=33119 - _SPFLATTEN_COLUMN._serialized_start=33121 - _SPFLATTEN_COLUMN._serialized_end=33204 - _SPGENERATOR._serialized_start=33206 - _SPGENERATOR._serialized_end=33323 - _SPRANGE._serialized_start=33326 - _SPRANGE._serialized_end=33466 - _SPSQL._serialized_start=33468 - _SPSQL._serialized_end=33521 - _SPSTOREDPROCEDURE._serialized_start=33523 - _SPSTOREDPROCEDURE._serialized_end=33638 - _SPTABLE._serialized_start=33640 - _SPTABLE._serialized_end=33729 - _SPTABLEFUNCTION._serialized_start=33731 - _SPTABLEFUNCTION._serialized_end=33855 - _SPDATAFRAMETODF._serialized_start=33857 - _SPDATAFRAMETODF._serialized_end=33976 - _SPDATAFRAMENADROP._serialized_start=33979 - _SPDATAFRAMENADROP._serialized_end=34108 - _SPDATAFRAMENAFILL._serialized_start=34111 - _SPDATAFRAMENAFILL._serialized_end=34243 - _SPDATAFRAMENAREPLACE._serialized_start=34246 - _SPDATAFRAMENAREPLACE._serialized_end=34404 - _SPDATAFRAMEAGG._serialized_start=34407 - _SPDATAFRAMEAGG._serialized_end=34540 - _SPDATAFRAMEAPPLY._serialized_start=34542 - _SPDATAFRAMEAPPLY._serialized_end=34643 - _SPDATAFRAMECOL._serialized_start=34645 - _SPDATAFRAMECOL._serialized_end=34744 - _SPDATAFRAMECROSSJOIN._serialized_start=34746 - _SPDATAFRAMECROSSJOIN._serialized_end=34869 - _SPDATAFRAMECUBE._serialized_start=34872 - _SPDATAFRAMECUBE._serialized_end=35005 - _SPDATAFRAMEDISTINCT._serialized_start=35007 - _SPDATAFRAMEDISTINCT._serialized_end=35093 - _SPDATAFRAMEDROP_COLUMNS._serialized_start=35096 - _SPDATAFRAMEDROP_COLUMNS._serialized_end=35237 - _SPDATAFRAMEDROP_STRINGS._serialized_start=35239 - _SPDATAFRAMEDROP_STRINGS._serialized_end=35361 - _SPDATAFRAMEDROPDUPLICATES._serialized_start=35363 - _SPDATAFRAMEDROPDUPLICATES._serialized_end=35469 - _SPDATAFRAMEEXCEPT._serialized_start=35471 - _SPDATAFRAMEEXCEPT._serialized_end=35592 - _SPDATAFRAMEFILTER._serialized_start=35594 - _SPDATAFRAMEFILTER._serialized_end=35716 - _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start=35719 - _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end=35951 - _SPDATAFRAMEFLATTEN_COLUMN._serialized_start=35953 - _SPDATAFRAMEFLATTEN_COLUMN._serialized_end=36079 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start=36082 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end=36226 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_start=36228 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_end=36353 - _SPDATAFRAMEGROUPBY._serialized_start=36355 - _SPDATAFRAMEGROUPBY._serialized_end=36440 - _SPDATAFRAMEINTERSECT._serialized_start=36442 - _SPDATAFRAMEINTERSECT._serialized_end=36566 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start=36569 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end=36839 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start=36842 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end=37118 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start=37121 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end=37337 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start=37340 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end=37576 - _SPDATAFRAMELIMIT._serialized_start=37578 - _SPDATAFRAMELIMIT._serialized_end=37672 - _SPDATAFRAMENATURALJOIN._serialized_start=37675 - _SPDATAFRAMENATURALJOIN._serialized_end=37836 - _SPDATAFRAMEPIVOT_COLUMN._serialized_start=37839 - _SPDATAFRAMEPIVOT_COLUMN._serialized_end=38002 - _SPDATAFRAMEPIVOT_STRING._serialized_start=38005 - _SPDATAFRAMEPIVOT_STRING._serialized_end=38149 - _SPDATAFRAMERENAME._serialized_start=38152 - _SPDATAFRAMERENAME._serialized_end=38286 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_start=38289 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_end=38432 - _SPDATAFRAMEROLLUP_STRINGS._serialized_start=38434 - _SPDATAFRAMEROLLUP_STRINGS._serialized_end=38558 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_start=38560 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_end=38681 - _SPDATAFRAMESAMPLE_LONG._serialized_start=38683 - _SPDATAFRAMESAMPLE_LONG._serialized_end=38785 - _SPDATAFRAMESELECT_COLUMNS._serialized_start=38788 - _SPDATAFRAMESELECT_COLUMNS._serialized_end=38923 - _SPDATAFRAMESELECT_STRINGS._serialized_start=38925 - _SPDATAFRAMESELECT_STRINGS._serialized_end=39049 - _SPDATAFRAMESORT._serialized_start=39052 - _SPDATAFRAMESORT._serialized_end=39185 - _SPDATAFRAMEUNION._serialized_start=39187 - _SPDATAFRAMEUNION._serialized_end=39306 - _SPDATAFRAMEUNIONALL._serialized_start=39308 - _SPDATAFRAMEUNIONALL._serialized_end=39430 - _SPDATAFRAMEUNIONALLBYNAME._serialized_start=39433 - _SPDATAFRAMEUNIONALLBYNAME._serialized_end=39561 - _SPDATAFRAMEUNIONBYNAME._serialized_start=39563 - _SPDATAFRAMEUNIONBYNAME._serialized_end=39688 - _SPDATAFRAMEWHERE._serialized_start=39690 - _SPDATAFRAMEWHERE._serialized_end=39811 - _SPDATAFRAMEWITHCOLUMN._serialized_start=39814 - _SPDATAFRAMEWITHCOLUMN._serialized_end=39952 - _SPDATAFRAMEWITHCOLUMNS._serialized_start=39955 - _SPDATAFRAMEWITHCOLUMNS._serialized_end=40098 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start=40101 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end=40260 - _SPCOPYABLEDATAFRAMEEXPR._serialized_start=40263 - _SPCOPYABLEDATAFRAMEEXPR._serialized_end=40779 - _SPDATAFRAMEREADEROPTIONS._serialized_start=40781 - _SPDATAFRAMEREADEROPTIONS._serialized_end=40835 - _SPDATAFRAMEREADERSCHEMA._serialized_start=40837 - _SPDATAFRAMEREADERSCHEMA._serialized_end=40890 - _SPREADAVRO._serialized_start=40892 - _SPREADAVRO._serialized_end=40949 - _SPREADCSV._serialized_start=40951 - _SPREADCSV._serialized_end=41007 - _SPREADJSON._serialized_start=41009 - _SPREADJSON._serialized_end=41066 - _SPREADORC._serialized_start=41068 - _SPREADORC._serialized_end=41124 - _SPREADPARQUET._serialized_start=41126 - _SPREADPARQUET._serialized_end=41186 - _SPREADTABLE._serialized_start=41188 - _SPREADTABLE._serialized_end=41246 - _SPREADXML._serialized_start=41248 - _SPREADXML._serialized_end=41304 - _SPCOPYINTO._serialized_start=41307 - _SPCOPYINTO._serialized_end=41510 - _SPDATAFRAMEWRITER._serialized_start=41513 - _SPDATAFRAMEWRITER._serialized_end=41876 - _SPDATAFRAMEWRITERSAVEMODE._serialized_start=41878 - _SPDATAFRAMEWRITERSAVEMODE._serialized_end=41933 - _SPDATAFRAMEWRITEROPTIONS._serialized_start=41935 - _SPDATAFRAMEWRITEROPTIONS._serialized_end=41989 - _SPWRITECSV._serialized_start=41991 - _SPWRITECSV._serialized_end=42082 - _SPWRITEJSON._serialized_start=42084 - _SPWRITEJSON._serialized_end=42176 - _SPWRITEPARQUET._serialized_start=42178 - _SPWRITEPARQUET._serialized_end=42273 - _SPWRITETABLE._serialized_start=42276 - _SPWRITETABLE._serialized_end=42425 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start=42427 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end=42493 - _SPDATAFRAMESTATSCORR._serialized_start=42495 - _SPDATAFRAMESTATSCORR._serialized_end=42551 - _SPDATAFRAMESTATSCOV._serialized_start=42553 - _SPDATAFRAMESTATSCOV._serialized_end=42608 - _SPDATAFRAMESTATSCROSSTAB._serialized_start=42610 - _SPDATAFRAMESTATSCROSSTAB._serialized_end=42729 - _SPDATAFRAMESTATSSAMPLEBY._serialized_start=42732 - _SPDATAFRAMESTATSSAMPLEBY._serialized_end=42913 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start=42916 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end=44525 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start=44528 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end=44721 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start=44724 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end=44899 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start=44902 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end=45055 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start=45058 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end=45206 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start=45209 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end=45379 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start=45381 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end=45498 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start=45501 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end=45649 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start=45652 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end=45801 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start=45804 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end=45955 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start=45958 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end=46106 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start=46109 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end=46257 - _SPDATAFRAMETYPE._serialized_start=46259 - _SPDATAFRAMETYPE._serialized_end=46317 - _SPGROUPEDDATAFRAMETYPE._serialized_start=46319 - _SPGROUPEDDATAFRAMETYPE._serialized_end=46389 - _SPWINDOWTYPE._serialized_start=46391 - _SPWINDOWTYPE._serialized_end=46405 - _SPCOLEXPRTYPE._serialized_start=46407 - _SPCOLEXPRTYPE._serialized_end=46446 - _HASSRCPOSITION._serialized_start=46449 - _HASSRCPOSITION._serialized_end=56155 - _STMT._serialized_start=56157 - _STMT._serialized_end=56232 - _ASSIGN._serialized_start=56234 - _ASSIGN._serialized_end=56354 - _EVAL._serialized_start=56356 - _EVAL._serialized_end=56403 - _TYPE._serialized_start=56406 - _TYPE._serialized_end=57366 - _UNKNOWNTYPE._serialized_start=57368 - _UNKNOWNTYPE._serialized_end=57381 - _ANYTYPE._serialized_start=57383 - _ANYTYPE._serialized_end=57392 - _SCALARTYPE._serialized_start=57395 - _SCALARTYPE._serialized_end=57696 - _NUMERICTYPE._serialized_start=57699 - _NUMERICTYPE._serialized_end=57881 - _NUMBERTYPE._serialized_start=57883 - _NUMBERTYPE._serialized_end=57895 - _NOTHINGTYPE._serialized_start=57897 - _NOTHINGTYPE._serialized_end=57910 - _UNITTYPE._serialized_start=57912 - _UNITTYPE._serialized_end=57922 - _BOOLTYPE._serialized_start=57924 - _BOOLTYPE._serialized_end=57934 - _INT32TYPE._serialized_start=57936 - _INT32TYPE._serialized_end=57947 - _INT64TYPE._serialized_start=57949 - _INT64TYPE._serialized_end=57960 - _FLOAT64TYPE._serialized_start=57962 - _FLOAT64TYPE._serialized_end=57975 - _STRINGTYPE._serialized_start=57977 - _STRINGTYPE._serialized_end=57989 - _PDREPRTYPE._serialized_start=57991 - _PDREPRTYPE._serialized_end=58003 - _FNTYPE._serialized_start=58005 - _FNTYPE._serialized_end=58064 - _OPTIONTYPE._serialized_start=58066 - _OPTIONTYPE._serialized_end=58102 - _TUPLETYPE._serialized_start=58104 - _TUPLETYPE._serialized_end=58139 - _LISTTYPE._serialized_start=58141 - _LISTTYPE._serialized_end=58175 - _MAPTYPE._serialized_start=58177 - _MAPTYPE._serialized_end=58230 - _TYVAR._serialized_start=58232 - _TYVAR._serialized_end=58251 + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b"\n\034com.snowflake.snowpark.proto" + _LIST_SPCOLUMNEXPR._serialized_start = 65 + _LIST_SPCOLUMNEXPR._serialized_end = 117 + _LIST_STRING._serialized_start = 119 + _LIST_STRING._serialized_end = 146 + _MAP_STRING_SPVARIANT._serialized_start = 148 + _MAP_STRING_SPVARIANT._serialized_end = 213 + _MAP_STRING_STRING._serialized_start = 215 + _MAP_STRING_STRING._serialized_end = 274 + _TUPLE_SPVARIANT_SPVARIANT._serialized_start = 276 + _TUPLE_SPVARIANT_SPVARIANT._serialized_end = 359 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start = 361 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end = 458 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 460 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 530 + _TUPLE_STRING_SPVARIANT._serialized_start = 532 + _TUPLE_STRING_SPVARIANT._serialized_end = 596 + _TUPLE_STRING_STRING._serialized_start = 598 + _TUPLE_STRING_STRING._serialized_end = 643 + _LANGUAGE._serialized_start = 646 + _LANGUAGE._serialized_end = 810 + _PYTHONLANGUAGE._serialized_start = 812 + _PYTHONLANGUAGE._serialized_end = 859 + _SCALALANGUAGE._serialized_start = 861 + _SCALALANGUAGE._serialized_end = 907 + _JAVALANGUAGE._serialized_start = 909 + _JAVALANGUAGE._serialized_end = 954 + _VERSION._serialized_start = 956 + _VERSION._serialized_end = 1025 + _PYTHONTIMEZONE._serialized_start = 1027 + _PYTHONTIMEZONE._serialized_end = 1111 + _PDINDEXEXPR._serialized_start = 1113 + _PDINDEXEXPR._serialized_end = 1226 + _ORD._serialized_start = 1228 + _ORD._serialized_end = 1255 + _FLEXORD._serialized_start = 1257 + _FLEXORD._serialized_end = 1288 + _KEY._serialized_start = 1290 + _KEY._serialized_end = 1317 + _PDPROJECTINDEXEXPR._serialized_start = 1320 + _PDPROJECTINDEXEXPR._serialized_end = 1633 + _ORDRANGE._serialized_start = 1635 + _ORDRANGE._serialized_end = 1721 + _FLEXORDRANGE._serialized_start = 1723 + _FLEXORDRANGE._serialized_end = 1813 + _KEYRANGE._serialized_start = 1815 + _KEYRANGE._serialized_end = 1876 + _ORDLIST._serialized_start = 1878 + _ORDLIST._serialized_end = 1912 + _FLEXORDLIST._serialized_start = 1914 + _FLEXORDLIST._serialized_end = 1952 + _KEYLIST._serialized_start = 1954 + _KEYLIST._serialized_end = 1988 + _BOOLFILTERLIST._serialized_start = 1990 + _BOOLFILTERLIST._serialized_end = 2033 + _SPFLATTENMODE._serialized_start = 2035 + _SPFLATTENMODE._serialized_end = 2160 + _SPGROUPINGSETS._serialized_start = 2162 + _SPGROUPINGSETS._serialized_end = 2216 + _SPSAVEMODE._serialized_start = 2219 + _SPSAVEMODE._serialized_end = 2378 + _SPJOINTYPE._serialized_start = 2381 + _SPJOINTYPE._serialized_end = 2675 + _SPWINDOWSPECEXPR._serialized_start = 2678 + _SPWINDOWSPECEXPR._serialized_end = 3139 + _SPWINDOWSPECORDERBY._serialized_start = 3141 + _SPWINDOWSPECORDERBY._serialized_end = 3231 + _SPWINDOWSPECPARTITIONBY._serialized_start = 3233 + _SPWINDOWSPECPARTITIONBY._serialized_end = 3327 + _SPWINDOWSPECRANGEBETWEEN._serialized_start = 3329 + _SPWINDOWSPECRANGEBETWEEN._serialized_end = 3419 + _SPWINDOWSPECROWSBETWEEN._serialized_start = 3421 + _SPWINDOWSPECROWSBETWEEN._serialized_end = 3510 + _SPTIMESTAMPTIMEZONE._serialized_start = 3513 + _SPTIMESTAMPTIMEZONE._serialized_end = 3700 + _SPDATATYPE._serialized_start = 3703 + _SPDATATYPE._serialized_end = 4505 + _SPARRAYTYPE._serialized_start = 4507 + _SPARRAYTYPE._serialized_end = 4569 + _SPCOLUMNIDENTIFIER._serialized_start = 4571 + _SPCOLUMNIDENTIFIER._serialized_end = 4605 + _SPDECIMALTYPE._serialized_start = 4607 + _SPDECIMALTYPE._serialized_end = 4656 + _SPMAPTYPE._serialized_start = 4658 + _SPMAPTYPE._serialized_end = 4757 + _SPSTRINGTYPE._serialized_start = 4759 + _SPSTRINGTYPE._serialized_end = 4818 + _SPSTRUCTFIELD._serialized_start = 4820 + _SPSTRUCTFIELD._serialized_end = 4941 + _SPSTRUCTTYPE._serialized_start = 4943 + _SPSTRUCTTYPE._serialized_end = 5013 + _SPTIMESTAMPTYPE._serialized_start = 5015 + _SPTIMESTAMPTYPE._serialized_end = 5077 + _SPVECTORTYPE._serialized_start = 5079 + _SPVECTORTYPE._serialized_end = 5141 + _SPVARIANT._serialized_start = 5144 + _SPVARIANT._serialized_end = 5850 + _SPVARIANT_OBJECT._serialized_start = 5852 + _SPVARIANT_OBJECT._serialized_end = 5907 + _SPVARIANT_LIST._serialized_start = 5909 + _SPVARIANT_LIST._serialized_end = 5960 + _SPVARIANT_TIMESTAMP._serialized_start = 5962 + _SPVARIANT_TIMESTAMP._serialized_end = 5994 + _SPVARIANT_DATE._serialized_start = 5996 + _SPVARIANT_DATE._serialized_end = 6023 + _SPVARIANT_TIME._serialized_start = 6025 + _SPVARIANT_TIME._serialized_end = 6052 + _SPVARIANT_BYTES._serialized_start = 6054 + _SPVARIANT_BYTES._serialized_end = 6082 + _SPVARIANT_STRING._serialized_start = 6084 + _SPVARIANT_STRING._serialized_end = 6113 + _SPVARIANT_BOOL._serialized_start = 6115 + _SPVARIANT_BOOL._serialized_end = 6142 + _SPVARIANT_BIGINT._serialized_start = 6144 + _SPVARIANT_BIGINT._serialized_end = 6173 + _SPVARIANT_BIGDECIMAL._serialized_start = 6175 + _SPVARIANT_BIGDECIMAL._serialized_end = 6208 + _SPVARIANT_INT._serialized_start = 6210 + _SPVARIANT_INT._serialized_end = 6236 + _SPVARIANT_FLOAT._serialized_start = 6238 + _SPVARIANT_FLOAT._serialized_end = 6266 + _SPVARIANT_DOUBLE._serialized_start = 6268 + _SPVARIANT_DOUBLE._serialized_end = 6297 + _SPROW._serialized_start = 6299 + _SPROW._serialized_end = 6334 + _SRCPOSITION._serialized_start = 6336 + _SRCPOSITION._serialized_end = 6443 + _VARID._serialized_start = 6445 + _VARID._serialized_end = 6471 + _REQUEST._serialized_start = 6473 + _REQUEST._serialized_end = 6585 + _RESPONSE._serialized_start = 6587 + _RESPONSE._serialized_end = 6624 + _CONST._serialized_start = 6627 + _CONST._serialized_end = 7314 + _NONEVAL._serialized_start = 7316 + _NONEVAL._serialized_end = 7356 + _NULLVAL._serialized_start = 7358 + _NULLVAL._serialized_end = 7398 + _BOOLVAL._serialized_start = 7400 + _BOOLVAL._serialized_end = 7451 + _INT32VAL._serialized_start = 7453 + _INT32VAL._serialized_end = 7505 + _INT64VAL._serialized_start = 7507 + _INT64VAL._serialized_end = 7559 + _FLOAT64VAL._serialized_start = 7561 + _FLOAT64VAL._serialized_end = 7615 + _BIGINTVAL._serialized_start = 7617 + _BIGINTVAL._serialized_end = 7670 + _BIGDECIMALVAL._serialized_start = 7672 + _BIGDECIMALVAL._serialized_end = 7757 + _STRINGVAL._serialized_start = 7759 + _STRINGVAL._serialized_end = 7812 + _BINARYVAL._serialized_start = 7814 + _BINARYVAL._serialized_end = 7867 + _TIMESTAMPVAL._serialized_start = 7869 + _TIMESTAMPVAL._serialized_end = 7925 + _DATEVAL._serialized_start = 7927 + _DATEVAL._serialized_end = 7978 + _TIMEVAL._serialized_start = 7980 + _TIMEVAL._serialized_end = 8031 + _PYTHONTIMESTAMPVAL._serialized_start = 8034 + _PYTHONTIMESTAMPVAL._serialized_end = 8227 + _PYTHONDATEVAL._serialized_start = 8229 + _PYTHONDATEVAL._serialized_end = 8317 + _PYTHONTIMEVAL._serialized_start = 8320 + _PYTHONTIMEVAL._serialized_end = 8466 + _FNVAL._serialized_start = 8468 + _FNVAL._serialized_end = 8547 + _IFEXPR._serialized_start = 8549 + _IFEXPR._serialized_end = 8670 + _SOMEVAL._serialized_start = 8672 + _SOMEVAL._serialized_end = 8734 + _TUPLEVAL._serialized_start = 8736 + _TUPLEVAL._serialized_end = 8800 + _LISTVAL._serialized_start = 8802 + _LISTVAL._serialized_end = 8865 + _SEQMAPVAL._serialized_start = 8867 + _SEQMAPVAL._serialized_end = 8937 + _BUILTINFNEXPR._serialized_start = 8940 + _BUILTINFNEXPR._serialized_end = 9563 + _APPLYEXPR._serialized_start = 9565 + _APPLYEXPR._serialized_end = 9655 + _PYFN._serialized_start = 9657 + _PYFN._serialized_end = 9737 + _SNOWFLAKEUDF._serialized_start = 9739 + _SNOWFLAKEUDF._serialized_end = 9814 + _SNOWFLAKESPROC._serialized_start = 9816 + _SNOWFLAKESPROC._serialized_end = 9893 + _UNARYOP._serialized_start = 9895 + _UNARYOP._serialized_end = 9965 + _BINOP._serialized_start = 9968 + _BINOP._serialized_end = 10422 + _NOT._serialized_start = 10424 + _NOT._serialized_end = 10488 + _AND._serialized_start = 10490 + _AND._serialized_end = 10574 + _OR._serialized_start = 10576 + _OR._serialized_end = 10659 + _EQ._serialized_start = 10661 + _EQ._serialized_end = 10744 + _NEQ._serialized_start = 10746 + _NEQ._serialized_end = 10830 + _LT._serialized_start = 10832 + _LT._serialized_end = 10915 + _LEQ._serialized_start = 10917 + _LEQ._serialized_end = 11001 + _GT._serialized_start = 11003 + _GT._serialized_end = 11086 + _GEQ._serialized_start = 11088 + _GEQ._serialized_end = 11172 + _NEG._serialized_start = 11174 + _NEG._serialized_end = 11238 + _ADD._serialized_start = 11240 + _ADD._serialized_end = 11324 + _SUB._serialized_start = 11326 + _SUB._serialized_end = 11410 + _MUL._serialized_start = 11412 + _MUL._serialized_end = 11496 + _DIV._serialized_start = 11498 + _DIV._serialized_end = 11582 + _MOD._serialized_start = 11584 + _MOD._serialized_end = 11668 + _POW._serialized_start = 11670 + _POW._serialized_end = 11754 + _BITAND._serialized_start = 11756 + _BITAND._serialized_end = 11843 + _BITOR._serialized_start = 11845 + _BITOR._serialized_end = 11931 + _BITXOR._serialized_start = 11933 + _BITXOR._serialized_end = 12020 + _RANGEVAL._serialized_start = 12022 + _RANGEVAL._serialized_end = 12139 + _STRINGFN._serialized_start = 12142 + _STRINGFN._serialized_end = 12674 + _STRINGLEN._serialized_start = 12676 + _STRINGLEN._serialized_end = 12742 + _STRINGTOUPPER._serialized_start = 12744 + _STRINGTOUPPER._serialized_end = 12814 + _STRINGTOLOWER._serialized_start = 12816 + _STRINGTOLOWER._serialized_end = 12886 + _STRINGSTARTSWITH._serialized_start = 12888 + _STRINGSTARTSWITH._serialized_end = 12988 + _STRINGENDSWITH._serialized_start = 12990 + _STRINGENDSWITH._serialized_end = 13088 + _STRINGSUBSTR._serialized_start = 13090 + _STRINGSUBSTR._serialized_end = 13207 + _STRINGCONTAINS._serialized_start = 13209 + _STRINGCONTAINS._serialized_end = 13308 + _STRINGLIKE._serialized_start = 13310 + _STRINGLIKE._serialized_end = 13405 + _STRINGREGEXP._serialized_start = 13407 + _STRINGREGEXP._serialized_end = 13504 + _STRINGREGEXPCOUNT._serialized_start = 13507 + _STRINGREGEXPCOUNT._serialized_end = 13660 + _STRINGCOLLATE._serialized_start = 13662 + _STRINGCOLLATE._serialized_end = 13756 + _STRINGCONCAT._serialized_start = 13758 + _STRINGCONCAT._serialized_end = 13820 + _EXPR._serialized_start = 13823 + _EXPR._serialized_end = 23606 + _REF._serialized_start = 23608 + _REF._serialized_end = 23672 + _CASTEXPR._serialized_start = 23674 + _CASTEXPR._serialized_end = 23761 + _PDDATAFRAME._serialized_start = 23764 + _PDDATAFRAME._serialized_end = 23913 + _PDDROPNA._serialized_start = 23916 + _PDDROPNA._serialized_end = 24058 + _PDDATAFRAMEGETITEM._serialized_start = 24060 + _PDDATAFRAMEGETITEM._serialized_end = 24161 + _PDDATAFRAMESETITEM._serialized_start = 24163 + _PDDATAFRAMESETITEM._serialized_end = 24286 + _PDDATAFRAMELOC._serialized_start = 24288 + _PDDATAFRAMELOC._serialized_end = 24410 + _PDDATAFRAMEILOC._serialized_start = 24412 + _PDDATAFRAMEILOC._serialized_end = 24535 + _PDREPR._serialized_start = 24537 + _PDREPR._serialized_end = 24651 + _PDREPRRESULT._serialized_start = 24653 + _PDREPRRESULT._serialized_end = 24770 + _RESULT._serialized_start = 24773 + _RESULT._serialized_end = 24931 + _EVALRESULT._serialized_start = 24934 + _EVALRESULT._serialized_end = 25706 + _EVALOK._serialized_start = 25708 + _EVALOK._serialized_end = 25788 + _ERROR._serialized_start = 25790 + _ERROR._serialized_end = 25880 + _SESSIONRESETREQUIREDERROR._serialized_start = 25882 + _SESSIONRESETREQUIREDERROR._serialized_end = 25950 + _SPCOLUMNEXPR._serialized_start = 25953 + _SPCOLUMNEXPR._serialized_end = 26267 + _SPCOLUMNREF._serialized_start = 26269 + _SPCOLUMNREF._serialized_end = 26325 + _SPCOLUMN._serialized_start = 26327 + _SPCOLUMN._serialized_end = 26430 + _SPCOLUMNSQLEXPR._serialized_start = 26432 + _SPCOLUMNSQLEXPR._serialized_end = 26541 + _SPCOLUMNFN._serialized_start = 26544 + _SPCOLUMNFN._serialized_end = 27391 + _SPCOLUMNALIAS._serialized_start = 27394 + _SPCOLUMNALIAS._serialized_end = 27529 + _SPCOLUMNAPPLY_INT._serialized_start = 27531 + _SPCOLUMNAPPLY_INT._serialized_end = 27618 + _SPCOLUMNAPPLY_STRING._serialized_start = 27620 + _SPCOLUMNAPPLY_STRING._serialized_end = 27712 + _SPCOLUMNASC._serialized_start = 27714 + _SPCOLUMNASC._serialized_end = 27831 + _SPCOLUMNBETWEEN._serialized_start = 27834 + _SPCOLUMNBETWEEN._serialized_end = 27970 + _SPCOLUMNCAST._serialized_start = 27972 + _SPCOLUMNCAST._serialized_end = 28070 + _SPCOLUMNTRYCAST._serialized_start = 28072 + _SPCOLUMNTRYCAST._serialized_end = 28173 + _SPCOLUMNDESC._serialized_start = 28175 + _SPCOLUMNDESC._serialized_end = 28293 + _SPCOLUMNEQUALNAN._serialized_start = 28295 + _SPCOLUMNEQUALNAN._serialized_end = 28368 + _SPCOLUMNEQUALNULL._serialized_start = 28370 + _SPCOLUMNEQUALNULL._serialized_end = 28468 + _SPCOLUMNIN_DATAFRAME._serialized_start = 28470 + _SPCOLUMNIN_DATAFRAME._serialized_end = 28581 + _SPCOLUMNIN_SEQ._serialized_start = 28583 + _SPCOLUMNIN_SEQ._serialized_end = 28681 + _SPCOLUMNISNOTNULL._serialized_start = 28683 + _SPCOLUMNISNOTNULL._serialized_end = 28757 + _SPCOLUMNISNULL._serialized_start = 28759 + _SPCOLUMNISNULL._serialized_end = 28830 + _SPCOLUMNNAME._serialized_start = 28832 + _SPCOLUMNNAME._serialized_end = 28916 + _SPCOLUMNOVER._serialized_start = 28918 + _SPCOLUMNOVER._serialized_end = 29031 + _SPCOLUMNWITHINGROUP._serialized_start = 29033 + _SPCOLUMNWITHINGROUP._serialized_end = 29152 + _SPDATAFRAMEEXPR._serialized_start = 29155 + _SPDATAFRAMEEXPR._serialized_end = 32897 + _SPDATAFRAMEREF._serialized_start = 32899 + _SPDATAFRAMEREF._serialized_end = 32970 + _SPDATAFRAMESHOW._serialized_start = 32972 + _SPDATAFRAMESHOW._serialized_end = 33044 + _SPCREATEDATAFRAME._serialized_start = 33047 + _SPCREATEDATAFRAME._serialized_end = 33176 + _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 33179 + _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 33368 + _SPFLATTEN_COLUMN._serialized_start = 33370 + _SPFLATTEN_COLUMN._serialized_end = 33453 + _SPGENERATOR._serialized_start = 33455 + _SPGENERATOR._serialized_end = 33572 + _SPRANGE._serialized_start = 33575 + _SPRANGE._serialized_end = 33715 + _SPSQL._serialized_start = 33717 + _SPSQL._serialized_end = 33770 + _SPSTOREDPROCEDURE._serialized_start = 33772 + _SPSTOREDPROCEDURE._serialized_end = 33887 + _SPTABLE._serialized_start = 33889 + _SPTABLE._serialized_end = 33978 + _SPTABLEFUNCTION._serialized_start = 33980 + _SPTABLEFUNCTION._serialized_end = 34104 + _SPDATAFRAMETODF._serialized_start = 34106 + _SPDATAFRAMETODF._serialized_end = 34225 + _SPDATAFRAMENADROP._serialized_start = 34228 + _SPDATAFRAMENADROP._serialized_end = 34357 + _SPDATAFRAMENAFILL._serialized_start = 34360 + _SPDATAFRAMENAFILL._serialized_end = 34492 + _SPDATAFRAMENAREPLACE._serialized_start = 34495 + _SPDATAFRAMENAREPLACE._serialized_end = 34653 + _SPDATAFRAMEAGG._serialized_start = 34656 + _SPDATAFRAMEAGG._serialized_end = 34789 + _SPDATAFRAMEAPPLY._serialized_start = 34791 + _SPDATAFRAMEAPPLY._serialized_end = 34892 + _SPDATAFRAMECOL._serialized_start = 34894 + _SPDATAFRAMECOL._serialized_end = 34993 + _SPDATAFRAMECROSSJOIN._serialized_start = 34995 + _SPDATAFRAMECROSSJOIN._serialized_end = 35118 + _SPDATAFRAMECUBE._serialized_start = 35121 + _SPDATAFRAMECUBE._serialized_end = 35254 + _SPDATAFRAMEDISTINCT._serialized_start = 35256 + _SPDATAFRAMEDISTINCT._serialized_end = 35342 + _SPDATAFRAMEDROP_COLUMNS._serialized_start = 35345 + _SPDATAFRAMEDROP_COLUMNS._serialized_end = 35486 + _SPDATAFRAMEDROP_STRINGS._serialized_start = 35488 + _SPDATAFRAMEDROP_STRINGS._serialized_end = 35610 + _SPDATAFRAMEDROPDUPLICATES._serialized_start = 35612 + _SPDATAFRAMEDROPDUPLICATES._serialized_end = 35718 + _SPDATAFRAMEEXCEPT._serialized_start = 35720 + _SPDATAFRAMEEXCEPT._serialized_end = 35841 + _SPDATAFRAMEFILTER._serialized_start = 35843 + _SPDATAFRAMEFILTER._serialized_end = 35965 + _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 35968 + _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 36200 + _SPDATAFRAMEFLATTEN_COLUMN._serialized_start = 36202 + _SPDATAFRAMEFLATTEN_COLUMN._serialized_end = 36328 + _SPDATAFRAMEFIRST._serialized_start = 36331 + _SPDATAFRAMEFIRST._serialized_end = 36492 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 36495 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 36639 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 36641 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 36766 + _SPDATAFRAMEGROUPBY._serialized_start = 36768 + _SPDATAFRAMEGROUPBY._serialized_end = 36853 + _SPDATAFRAMEINTERSECT._serialized_start = 36855 + _SPDATAFRAMEINTERSECT._serialized_end = 36979 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 36982 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 37252 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 37255 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 37531 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 37534 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 37750 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 37753 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 37989 + _SPDATAFRAMELIMIT._serialized_start = 37991 + _SPDATAFRAMELIMIT._serialized_end = 38085 + _SPDATAFRAMENATURALJOIN._serialized_start = 38088 + _SPDATAFRAMENATURALJOIN._serialized_end = 38249 + _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 38252 + _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 38415 + _SPDATAFRAMEPIVOT_STRING._serialized_start = 38418 + _SPDATAFRAMEPIVOT_STRING._serialized_end = 38562 + _SPDATAFRAMERANDOMSPLIT._serialized_start = 38565 + _SPDATAFRAMERANDOMSPLIT._serialized_end = 38764 + _SPDATAFRAMERENAME._serialized_start = 38767 + _SPDATAFRAMERENAME._serialized_end = 38901 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 38904 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 39047 + _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 39049 + _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 39173 + _SPDATAFRAMESAMPLE_DOUBLE._serialized_start = 39175 + _SPDATAFRAMESAMPLE_DOUBLE._serialized_end = 39296 + _SPDATAFRAMESAMPLE_LONG._serialized_start = 39298 + _SPDATAFRAMESAMPLE_LONG._serialized_end = 39400 + _SPDATAFRAMESELECT_COLUMNS._serialized_start = 39403 + _SPDATAFRAMESELECT_COLUMNS._serialized_end = 39538 + _SPDATAFRAMESELECT_STRINGS._serialized_start = 39540 + _SPDATAFRAMESELECT_STRINGS._serialized_end = 39664 + _SPDATAFRAMESORT._serialized_start = 39667 + _SPDATAFRAMESORT._serialized_end = 39800 + _SPDATAFRAMEUNION._serialized_start = 39802 + _SPDATAFRAMEUNION._serialized_end = 39921 + _SPDATAFRAMEUNIONALL._serialized_start = 39923 + _SPDATAFRAMEUNIONALL._serialized_end = 40045 + _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 40048 + _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 40176 + _SPDATAFRAMEUNIONBYNAME._serialized_start = 40178 + _SPDATAFRAMEUNIONBYNAME._serialized_end = 40303 + _SPDATAFRAMEWHERE._serialized_start = 40305 + _SPDATAFRAMEWHERE._serialized_end = 40426 + _SPDATAFRAMEWITHCOLUMN._serialized_start = 40429 + _SPDATAFRAMEWITHCOLUMN._serialized_end = 40567 + _SPDATAFRAMEWITHCOLUMNS._serialized_start = 40570 + _SPDATAFRAMEWITHCOLUMNS._serialized_end = 40713 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 40716 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 40875 + _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 40878 + _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 41394 + _SPDATAFRAMEREADEROPTIONS._serialized_start = 41396 + _SPDATAFRAMEREADEROPTIONS._serialized_end = 41450 + _SPDATAFRAMEREADERSCHEMA._serialized_start = 41452 + _SPDATAFRAMEREADERSCHEMA._serialized_end = 41505 + _SPREADAVRO._serialized_start = 41507 + _SPREADAVRO._serialized_end = 41564 + _SPREADCSV._serialized_start = 41566 + _SPREADCSV._serialized_end = 41622 + _SPREADJSON._serialized_start = 41624 + _SPREADJSON._serialized_end = 41681 + _SPREADORC._serialized_start = 41683 + _SPREADORC._serialized_end = 41739 + _SPREADPARQUET._serialized_start = 41741 + _SPREADPARQUET._serialized_end = 41801 + _SPREADTABLE._serialized_start = 41803 + _SPREADTABLE._serialized_end = 41861 + _SPREADXML._serialized_start = 41863 + _SPREADXML._serialized_end = 41919 + _SPCOPYINTO._serialized_start = 41922 + _SPCOPYINTO._serialized_end = 42125 + _SPDATAFRAMEWRITER._serialized_start = 42128 + _SPDATAFRAMEWRITER._serialized_end = 42491 + _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 42493 + _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 42548 + _SPDATAFRAMEWRITEROPTIONS._serialized_start = 42550 + _SPDATAFRAMEWRITEROPTIONS._serialized_end = 42604 + _SPWRITECSV._serialized_start = 42606 + _SPWRITECSV._serialized_end = 42697 + _SPWRITEJSON._serialized_start = 42699 + _SPWRITEJSON._serialized_end = 42791 + _SPWRITEPARQUET._serialized_start = 42793 + _SPWRITEPARQUET._serialized_end = 42888 + _SPWRITETABLE._serialized_start = 42891 + _SPWRITETABLE._serialized_end = 43040 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start = 43042 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end = 43108 + _SPDATAFRAMESTATSCORR._serialized_start = 43110 + _SPDATAFRAMESTATSCORR._serialized_end = 43166 + _SPDATAFRAMESTATSCOV._serialized_start = 43168 + _SPDATAFRAMESTATSCOV._serialized_end = 43223 + _SPDATAFRAMESTATSCROSSTAB._serialized_start = 43225 + _SPDATAFRAMESTATSCROSSTAB._serialized_end = 43344 + _SPDATAFRAMESTATSSAMPLEBY._serialized_start = 43347 + _SPDATAFRAMESTATSSAMPLEBY._serialized_end = 43528 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 43531 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 45140 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 45143 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 45336 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 45339 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 45514 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 45517 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 45670 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 45673 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 45821 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 45824 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 45994 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 45996 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 46113 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 46116 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 46264 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 46267 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 46416 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 46419 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 46570 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 46573 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 46721 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 46724 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 46872 + _SPDATAFRAMETYPE._serialized_start = 46874 + _SPDATAFRAMETYPE._serialized_end = 46932 + _SPGROUPEDDATAFRAMETYPE._serialized_start = 46934 + _SPGROUPEDDATAFRAMETYPE._serialized_end = 47004 + _SPWINDOWTYPE._serialized_start = 47006 + _SPWINDOWTYPE._serialized_end = 47020 + _SPCOLEXPRTYPE._serialized_start = 47022 + _SPCOLEXPRTYPE._serialized_end = 47061 + _HASSRCPOSITION._serialized_start = 47064 + _HASSRCPOSITION._serialized_end = 56891 + _STMT._serialized_start = 56893 + _STMT._serialized_end = 56968 + _ASSIGN._serialized_start = 56970 + _ASSIGN._serialized_end = 57090 + _EVAL._serialized_start = 57092 + _EVAL._serialized_end = 57139 + _TYPE._serialized_start = 57142 + _TYPE._serialized_end = 58102 + _UNKNOWNTYPE._serialized_start = 58104 + _UNKNOWNTYPE._serialized_end = 58117 + _ANYTYPE._serialized_start = 58119 + _ANYTYPE._serialized_end = 58128 + _SCALARTYPE._serialized_start = 58131 + _SCALARTYPE._serialized_end = 58432 + _NUMERICTYPE._serialized_start = 58435 + _NUMERICTYPE._serialized_end = 58617 + _NUMBERTYPE._serialized_start = 58619 + _NUMBERTYPE._serialized_end = 58631 + _NOTHINGTYPE._serialized_start = 58633 + _NOTHINGTYPE._serialized_end = 58646 + _UNITTYPE._serialized_start = 58648 + _UNITTYPE._serialized_end = 58658 + _BOOLTYPE._serialized_start = 58660 + _BOOLTYPE._serialized_end = 58670 + _INT32TYPE._serialized_start = 58672 + _INT32TYPE._serialized_end = 58683 + _INT64TYPE._serialized_start = 58685 + _INT64TYPE._serialized_end = 58696 + _FLOAT64TYPE._serialized_start = 58698 + _FLOAT64TYPE._serialized_end = 58711 + _STRINGTYPE._serialized_start = 58713 + _STRINGTYPE._serialized_end = 58725 + _PDREPRTYPE._serialized_start = 58727 + _PDREPRTYPE._serialized_end = 58739 + _FNTYPE._serialized_start = 58741 + _FNTYPE._serialized_end = 58800 + _OPTIONTYPE._serialized_start = 58802 + _OPTIONTYPE._serialized_end = 58838 + _TUPLETYPE._serialized_start = 58840 + _TUPLETYPE._serialized_end = 58875 + _LISTTYPE._serialized_start = 58877 + _LISTTYPE._serialized_end = 58911 + _MAPTYPE._serialized_start = 58913 + _MAPTYPE._serialized_end = 58966 + _TYVAR._serialized_start = 58968 + _TYVAR._serialized_end = 58987 # @@protoc_insertion_point(module_scope) diff --git a/tests/ast/data/df_first.test b/tests/ast/data/df_first.test index 6062a9dd5c5..b1c76730df9 100644 --- a/tests/ast/data/df_first.test +++ b/tests/ast/data/df_first.test @@ -2,11 +2,18 @@ df = session.table("test_table") +df = df.first(-5) + df = df.first(2) +df = df.first() ## EXPECTED OUTPUT res1 = session.table("test_table") -res2 = res1.first(2) +res2 = res1.first(-5) + +res3 = res2.first(2) + +res4 = res3.first(1) diff --git a/tests/ast/data/df_random_split.test b/tests/ast/data/df_random_split.test new file mode 100644 index 00000000000..2f1198ac441 --- /dev/null +++ b/tests/ast/data/df_random_split.test @@ -0,0 +1,19 @@ +## TEST CASE + +df = session.table("test_table") + +weights = [0.1, 0.2, 0.3] + +df2 = df.random_split(weights) + +df3 = df.random_split(weights, seed=24) + +## EXPECTED OUTPUT + +res1 = session.table("test_table") + +res2 = [0.1, 0.2, 0.3] + +res3 = res1.random_split(res2) + +res4 = res1.random_split(res2, 24) diff --git a/tests/ast/data/df_sample.test b/tests/ast/data/df_sample.test new file mode 100644 index 00000000000..c7b68aaff79 --- /dev/null +++ b/tests/ast/data/df_sample.test @@ -0,0 +1,15 @@ +## TEST CASE + +df = session.table("test_table") + +df = df.sample(n=3) + +df = df.sample(frac=0.5) + +## EXPECTED OUTPUT + +res1 = session.table("test_table") + +res2 = res1.sample(3) + +res3 = res2.sample(0.5) From f43e1968eb3148daebff30ce764deb899cd41d77 Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Fri, 21 Jun 2024 12:01:51 -0700 Subject: [PATCH 03/10] Update proto files and test --- src/snowflake/snowpark/_internal/proto/ast_pb2.py | 3 +-- tests/ast/data/df_random_split.test | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index 40257650e73..6898b20e9e3 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -5,7 +5,6 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: Snowpark/proto/ast.proto """Generated protocol buffer code.""" -# flake8: noqa from google.protobuf import ( descriptor as _descriptor, descriptor_pool as _descriptor_pool, @@ -21,7 +20,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x18Snowpark/proto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto"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"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"S\n\x19Tuple_SpVariant_SpVariant\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"\xef\x04\n\rBuiltInFnExpr\x12(\n\x0ftrait_string_fn\x18\x01 \x01(\x0b\x32\r.ast.StringFnH\x00\x12,\n\x0estring_collate\x18\x02 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12*\n\rstring_concat\x18\x03 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12.\n\x0fstring_contains\x18\x04 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x05 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x06 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x07 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x08 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\t \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\n \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\x0b \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\x0c \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\r \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"Z\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\t.ast.Expr"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\x94\x04\n\x08StringFn\x12,\n\x0estring_collate\x18\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12.\n\x0fstring_contains\x18\x02 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x03 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x04 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x05 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x06 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\x07 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\x08 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\t \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\n \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\x0b \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"B\n\tStringLen\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToUpper\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToLower\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"d\n\x10StringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"b\n\x0eStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"u\n\x0cStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"c\n\x0eStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"_\n\nStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"a\n\x0cStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x99\x01\n\x11StringRegexpCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06params\x18\x05 \x03(\x0b\x32\t.ast.Expr"^\n\rStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x0e\x63ollation_spec\x18\x03 \x01(\t">\n\x0cStringConcat\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07strings\x18\x02 \x03(\t"\xb7L\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\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\x0ftrait_string_fn\x18\x0e \x01(\x0b\x32\r.ast.StringFnH\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\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x42 \x01(\x0b\x32\r.ast.SpColumnH\x00\x12-\n\x0fsp_column_alias\x18\x43 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x44 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x45 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x46 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18G \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18H \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18I \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18J \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18K \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18L \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18M \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18N \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18O \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18P \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18Q \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18R \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18S \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18T \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18U \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18V \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18W \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18X \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Y \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18Z \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18[ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\\ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18] \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18^ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18_ \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x61 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x63 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x65 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18g \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18j \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18k \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18l \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18m \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18n \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18o \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18r \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18s \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18v \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18w \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18x \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18y \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18{ \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18| \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18} \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x31\n\x11sp_dataframe_show\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x83\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x85\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x86\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x87\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x88\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x89\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8a\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8b\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8c\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8d\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8e\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x91\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x92\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x93\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x94\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x96\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x97\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x98\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x99\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9a\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9b\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9c\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9d\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9e\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa5\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa6\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa7\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa8\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa9\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xaa\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xab\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xad\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xae\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xaf\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb0\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb1\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb2\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb3\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb5\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb6\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb7\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb8\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb9\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\xba\x02\n\x0cSpColumnExpr\x12"\n\tsp_column\x18\x01 \x01(\x0b\x32\r.ast.SpColumnH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"g\n\x08SpColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\xcf\x06\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\x32\n\x12sp_column_try_cast\x18\x0f \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x10 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9e\x1d\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x0f \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x10 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x11 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x12 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x13 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x14 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x15 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x16 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x17 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18\x18 \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x19 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1a \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1b \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18\x1c \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18\x1d \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1e \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18! \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18" \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18% \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18& \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\' \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18( \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18) \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18* \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18+ \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18, \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18- \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18. \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18/ \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18\x30 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18\x31 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x32 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x33 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x34 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x35 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x36 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x37 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x38 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x39 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18: \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18; \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18< \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18= \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"5\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"Y\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x81\x01\n\x11SpDataframeNaDrop\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\x84\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12.\n\tvalue_map\x18\x03 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant"\x9e\x01\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x33\n\x0breplacement\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_SpVariant_SpVariant"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xa1\x01\n\x10SpDataframeFirst\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\r\n\x05\x62lock\x18\x04 \x01(\x08\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc7\x01\n\x16SpDataframeRandomSplit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07weights\x18\x03 \x03(\x04\x12)\n\x04seed\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x04"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xe3L\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x04 \x01(\x0b\x32\t.ast.ExprH\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\x0ftrait_string_fn\x18\x0f \x01(\x0b\x32\r.ast.StringFnH\x00\x12&\n\x0etrait_unary_op\x18\x10 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x11 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x12 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x13 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x14 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x15 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x16 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x17 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x18 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x19 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1a \x01(\x0b\x32\x0c.ast.BoolValH\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\x1a\n\x05py_fn\x18\x39 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18@ \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18\x41 \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x43 \x01(\x0b\x32\r.ast.SpColumnH\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+\n\x0esp_column_cast\x18I \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18J \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18K \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18L \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18M \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18N \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18O \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18P \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18Q \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18R \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18S \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18T \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18U \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18V \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18W \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18X \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Y \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Z \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18[ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\\ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18] \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18^ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18_ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x64 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x65 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x66 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18g \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18h \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18j \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18k \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18l \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18m \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18n \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18o \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18p \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18r \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18s \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18t \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18v \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18w \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18x \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18y \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18| \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18} \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x83\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x85\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x86\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x87\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8c\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8d\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8e\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8f\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x92\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x93\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x94\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x95\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x97\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x98\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x99\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9a\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9b\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9c\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9e\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9f\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa2\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa3\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa4\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa5\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa6\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa7\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa8\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa9\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xaa\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xab\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xad\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xae\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xaf\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xb0\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb1\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb2\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb3\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb5\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb6\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb7\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb8\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb9\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xba\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' + b'\n\x18Snowpark/proto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto"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"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"S\n\x19Tuple_SpVariant_SpVariant\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"\xef\x04\n\rBuiltInFnExpr\x12(\n\x0ftrait_string_fn\x18\x01 \x01(\x0b\x32\r.ast.StringFnH\x00\x12,\n\x0estring_collate\x18\x02 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12*\n\rstring_concat\x18\x03 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12.\n\x0fstring_contains\x18\x04 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x05 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x06 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x07 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x08 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\t \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\n \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\x0b \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\x0c \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\r \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"Z\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\t.ast.Expr"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\x94\x04\n\x08StringFn\x12,\n\x0estring_collate\x18\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12.\n\x0fstring_contains\x18\x02 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x03 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x04 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x05 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x06 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\x07 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\x08 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\t \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\n \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\x0b \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"B\n\tStringLen\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToUpper\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToLower\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"d\n\x10StringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"b\n\x0eStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"u\n\x0cStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"c\n\x0eStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"_\n\nStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"a\n\x0cStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x99\x01\n\x11StringRegexpCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06params\x18\x05 \x03(\x0b\x32\t.ast.Expr"^\n\rStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x0e\x63ollation_spec\x18\x03 \x01(\t">\n\x0cStringConcat\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07strings\x18\x02 \x03(\t"\xb7L\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\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\x0ftrait_string_fn\x18\x0e \x01(\x0b\x32\r.ast.StringFnH\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\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x42 \x01(\x0b\x32\r.ast.SpColumnH\x00\x12-\n\x0fsp_column_alias\x18\x43 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x44 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x45 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x46 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18G \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18H \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18I \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18J \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18K \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18L \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18M \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18N \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18O \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18P \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18Q \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18R \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18S \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18T \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18U \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18V \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18W \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18X \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Y \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18Z \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18[ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\\ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18] \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18^ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18_ \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x61 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x63 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x65 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18g \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18j \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18k \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18l \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18m \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18n \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18o \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18r \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18s \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18v \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18w \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18x \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18y \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18{ \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18| \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18} \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x31\n\x11sp_dataframe_show\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x83\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x85\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x86\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x87\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x88\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x89\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8a\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8b\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8c\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8d\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8e\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x91\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x92\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x93\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x94\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x96\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x97\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x98\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x99\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9a\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9b\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9c\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9d\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9e\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa5\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa6\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa7\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa8\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa9\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xaa\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xab\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xad\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xae\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xaf\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb0\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb1\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb2\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb3\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb5\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb6\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb7\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb8\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb9\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\xba\x02\n\x0cSpColumnExpr\x12"\n\tsp_column\x18\x01 \x01(\x0b\x32\r.ast.SpColumnH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"g\n\x08SpColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\xcf\x06\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\x32\n\x12sp_column_try_cast\x18\x0f \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x10 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9e\x1d\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x0f \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x10 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x11 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x12 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x13 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x14 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x15 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x16 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x17 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18\x18 \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x19 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1a \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1b \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18\x1c \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18\x1d \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1e \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18! \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18" \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18% \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18& \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\' \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18( \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18) \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18* \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18+ \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18, \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18- \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18. \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18/ \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18\x30 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18\x31 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x32 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x33 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x34 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x35 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x36 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x37 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x38 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x39 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18: \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18; \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18< \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18= \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"5\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"Y\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x81\x01\n\x11SpDataframeNaDrop\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\x84\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12.\n\tvalue_map\x18\x03 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant"\x9e\x01\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x33\n\x0breplacement\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_SpVariant_SpVariant"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xa1\x01\n\x10SpDataframeFirst\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\r\n\x05\x62lock\x18\x04 \x01(\x08\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc7\x01\n\x16SpDataframeRandomSplit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07weights\x18\x03 \x03(\x01\x12)\n\x04seed\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x01"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xe3L\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x04 \x01(\x0b\x32\t.ast.ExprH\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\x0ftrait_string_fn\x18\x0f \x01(\x0b\x32\r.ast.StringFnH\x00\x12&\n\x0etrait_unary_op\x18\x10 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x11 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x12 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x13 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x14 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x15 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x16 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x17 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x18 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x19 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1a \x01(\x0b\x32\x0c.ast.BoolValH\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\x1a\n\x05py_fn\x18\x39 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18@ \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18\x41 \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x43 \x01(\x0b\x32\r.ast.SpColumnH\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+\n\x0esp_column_cast\x18I \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18J \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18K \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18L \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18M \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18N \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18O \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18P \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18Q \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18R \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18S \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18T \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18U \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18V \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18W \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18X \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Y \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Z \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18[ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\\ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18] \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18^ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18_ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x64 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x65 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x66 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18g \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18h \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18j \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18k \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18l \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18m \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18n \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18o \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18p \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18r \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18s \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18t \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18v \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18w \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18x \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18y \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18| \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18} \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x83\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x85\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x86\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x87\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8c\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8d\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8e\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8f\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x92\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x93\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x94\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x95\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x97\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x98\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x99\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9a\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9b\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9c\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9e\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9f\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa2\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa3\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa4\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa5\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa6\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa7\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa8\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa9\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xaa\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xab\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xad\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xae\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xaf\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xb0\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb1\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb2\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb3\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb5\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb6\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb7\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb8\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb9\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xba\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' ) _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) diff --git a/tests/ast/data/df_random_split.test b/tests/ast/data/df_random_split.test index 2f1198ac441..70469e84b52 100644 --- a/tests/ast/data/df_random_split.test +++ b/tests/ast/data/df_random_split.test @@ -12,8 +12,6 @@ df3 = df.random_split(weights, seed=24) res1 = session.table("test_table") -res2 = [0.1, 0.2, 0.3] +res2 = res1.random_split([0.1, 0.2, 0.3]) -res3 = res1.random_split(res2) - -res4 = res1.random_split(res2, 24) +res4 = res1.random_split([0.1, 0.2, 0.3], 24) From a964155f59783149a70a9552ca16ce2a59bed215 Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Mon, 24 Jun 2024 13:03:55 -0700 Subject: [PATCH 04/10] tests work now --- src/snowflake/snowpark/dataframe.py | 7 ++++--- tests/ast/data/df_first.test | 12 ++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/snowflake/snowpark/dataframe.py b/src/snowflake/snowpark/dataframe.py index 78563c2a712..2194baf838e 100644 --- a/src/snowflake/snowpark/dataframe.py +++ b/src/snowflake/snowpark/dataframe.py @@ -3701,7 +3701,7 @@ def first( stmt = self._session._ast_batch.assign() ast = stmt.expr.sp_dataframe_first if statement_params is not None: - ast.statement_params = statement_params + ast.statement_params.append((k, v) for k, v in statement_params) self.set_ast_ref(ast.df) set_src_position(ast.src) ast.block = block @@ -3769,7 +3769,7 @@ def sample( ), ast_stmt=stmt, ) - return self._with_plan(sample_plan) + return self._with_plan(sample_plan, ast_stmt=stmt) @staticmethod def _validate_sample_input(frac: Optional[float] = None, n: Optional[int] = None): @@ -4159,7 +4159,8 @@ def random_split( raise ValueError( "weights can't be None or empty and must be positive numbers" ) - ast.weights = weights + for w in weights: + ast.weights.append(w) if seed: ast.seed = seed if statement_params: diff --git a/tests/ast/data/df_first.test b/tests/ast/data/df_first.test index b1c76730df9..fd96b8dc8c2 100644 --- a/tests/ast/data/df_first.test +++ b/tests/ast/data/df_first.test @@ -2,18 +2,18 @@ df = session.table("test_table") -df = df.first(-5) +df1 = df.first(-5) -df = df.first(2) +df2 = df.first(2) -df = df.first() +df3 = df.first() ## EXPECTED OUTPUT res1 = session.table("test_table") -res2 = res1.first(-5) +res2 = res1.first(-5, true, None) -res3 = res2.first(2) +res3 = res1.first(2, true, None) -res4 = res3.first(1) +res4 = res1.first(1, true, None) From bfea5b7c45981ab3653057783185036e775fefef Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Thu, 27 Jun 2024 17:53:18 -0700 Subject: [PATCH 05/10] update test --- tests/ast/data/df_first.test | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/ast/data/df_first.test b/tests/ast/data/df_first.test index fd96b8dc8c2..11cf75320aa 100644 --- a/tests/ast/data/df_first.test +++ b/tests/ast/data/df_first.test @@ -12,8 +12,8 @@ df3 = df.first() res1 = session.table("test_table") -res2 = res1.first(-5, true, None) +res2 = res1.first(-5, True) -res3 = res1.first(2, true, None) +res3 = res1.first(2, True) -res4 = res1.first(1, true, None) +res4 = res1.first(1, True) From 718f674950c0a1c3d283c6ae4c197835f4539679 Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Fri, 28 Jun 2024 15:35:28 -0700 Subject: [PATCH 06/10] update ast_pb2.py --- .../snowpark/_internal/proto/ast_pb2.py | 1158 +++++++++-------- 1 file changed, 581 insertions(+), 577 deletions(-) diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index 03b523b1b65..6898b20e9e3 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -3,7 +3,7 @@ # # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: proto/ast.proto +# source: Snowpark/proto/ast.proto """Generated protocol buffer code.""" from google.protobuf import ( descriptor as _descriptor, @@ -20,587 +20,591 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto"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"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"S\n\x19Tuple_SpVariant_SpVariant\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"\xef\x04\n\rBuiltInFnExpr\x12(\n\x0ftrait_string_fn\x18\x01 \x01(\x0b\x32\r.ast.StringFnH\x00\x12,\n\x0estring_collate\x18\x02 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12*\n\rstring_concat\x18\x03 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12.\n\x0fstring_contains\x18\x04 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x05 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x06 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x07 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x08 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\t \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\n \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\x0b \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\x0c \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\r \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"Z\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\t.ast.Expr"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\x94\x04\n\x08StringFn\x12,\n\x0estring_collate\x18\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12.\n\x0fstring_contains\x18\x02 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x03 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x04 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x05 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x06 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\x07 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\x08 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\t \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\n \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\x0b \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"B\n\tStringLen\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToUpper\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToLower\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"d\n\x10StringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"b\n\x0eStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"u\n\x0cStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"c\n\x0eStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"_\n\nStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"a\n\x0cStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x99\x01\n\x11StringRegexpCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06params\x18\x05 \x03(\x0b\x32\t.ast.Expr"^\n\rStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x0e\x63ollation_spec\x18\x03 \x01(\t">\n\x0cStringConcat\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07strings\x18\x02 \x03(\t"\xbeK\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\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\x0ftrait_string_fn\x18\x0e \x01(\x0b\x32\r.ast.StringFnH\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\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x42 \x01(\x0b\x32\r.ast.SpColumnH\x00\x12-\n\x0fsp_column_alias\x18\x43 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x44 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x45 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x46 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18G \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18H \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18I \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18J \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18K \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18L \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18M \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18N \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18O \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18P \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18Q \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18R \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18S \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18T \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18U \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18V \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18W \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18X \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Y \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18Z \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18[ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\\ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18] \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18^ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18_ \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x61 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x63 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x64 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x65 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x66 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18g \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18i \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18j \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18k \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18l \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18m \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18n \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18o \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18q \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18r \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18s \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12/\n\x10sp_dataframe_ref\x18u \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18v \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18w \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18x \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18y \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18z \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18| \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18\x7f \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x80\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x82\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x83\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x84\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x85\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x86\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x87\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8a\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8b\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8c\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8d\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x8e\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x91\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x92\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x93\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x94\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x95\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x96\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x97\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x98\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x99\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9a\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9b\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9c\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\x9e\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\x9f\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa0\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa1\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa2\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa3\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa4\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa5\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa6\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa7\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xa8\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xa9\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xaa\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xab\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xac\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xad\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xae\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xaf\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb0\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb1\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb2\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb3\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb4\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb5\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb6\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb7\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\xba\x02\n\x0cSpColumnExpr\x12"\n\tsp_column\x18\x01 \x01(\x0b\x32\r.ast.SpColumnH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"g\n\x08SpColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\xcf\x06\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\x32\n\x12sp_column_try_cast\x18\x0f \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x10 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xa7\x1c\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x0f \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x10 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x11 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x12 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x13 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x14 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x15 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18\x17 \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x18 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x19 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1a \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12/\n\x10sp_dataframe_ref\x18\x1b \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1c \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1d \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18\x1e \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18\x1f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18# \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18$ \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18% \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18& \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18\' \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18( \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18) \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18* \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18+ \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18, \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18- \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18. \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18/ \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x30 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x31 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x32 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x33 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x34 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x35 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x36 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x37 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18\x38 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18\x39 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18: \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18; \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"5\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"Y\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x81\x01\n\x11SpDataframeNaDrop\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\x84\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12.\n\tvalue_map\x18\x03 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant"\x9e\x01\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x33\n\x0breplacement\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_SpVariant_SpVariant"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x04"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xeaK\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x04 \x01(\x0b\x32\t.ast.ExprH\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\x0ftrait_string_fn\x18\x0f \x01(\x0b\x32\r.ast.StringFnH\x00\x12&\n\x0etrait_unary_op\x18\x10 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x11 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x12 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x13 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x14 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x15 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x16 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x17 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x18 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x19 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1a \x01(\x0b\x32\x0c.ast.BoolValH\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\x1a\n\x05py_fn\x18\x39 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18@ \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18\x41 \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x43 \x01(\x0b\x32\r.ast.SpColumnH\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+\n\x0esp_column_cast\x18I \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18J \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18K \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18L \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18M \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18N \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18O \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18P \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18Q \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18R \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18S \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18T \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18U \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18V \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18W \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18X \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Y \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Z \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18[ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\\ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18] \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18^ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18_ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x65 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18g \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18j \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18k \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18l \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18m \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18n \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18o \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18r \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18s \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12/\n\x10sp_dataframe_ref\x18v \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18w \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18x \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18y \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18z \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18{ \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18| \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18} \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x31\n\x11sp_dataframe_show\x18~ \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x31\n\x11sp_dataframe_sort\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x80\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x82\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x83\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x84\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x85\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x86\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x87\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x88\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8a\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8b\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8c\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8d\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8e\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x8f\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x92\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x93\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x94\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x95\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x96\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x97\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x98\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x99\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9a\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9b\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9c\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9d\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9e\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa0\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa1\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa2\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa3\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa4\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa5\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa6\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa7\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa8\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xa9\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xaa\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xab\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xac\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xad\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xae\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xaf\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb0\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb1\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb2\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb3\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb4\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb5\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb6\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb7\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb8\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' + b'\n\x18Snowpark/proto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto"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"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"S\n\x19Tuple_SpVariant_SpVariant\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"\xef\x04\n\rBuiltInFnExpr\x12(\n\x0ftrait_string_fn\x18\x01 \x01(\x0b\x32\r.ast.StringFnH\x00\x12,\n\x0estring_collate\x18\x02 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12*\n\rstring_concat\x18\x03 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12.\n\x0fstring_contains\x18\x04 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x05 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x06 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x07 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x08 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\t \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\n \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\x0b \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\x0c \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\r \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"Z\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\t.ast.Expr"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\x94\x04\n\x08StringFn\x12,\n\x0estring_collate\x18\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12.\n\x0fstring_contains\x18\x02 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x03 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x04 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x05 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x06 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\x07 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\x08 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\t \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\n \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\x0b \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"B\n\tStringLen\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToUpper\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToLower\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"d\n\x10StringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"b\n\x0eStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"u\n\x0cStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"c\n\x0eStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"_\n\nStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"a\n\x0cStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x99\x01\n\x11StringRegexpCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06params\x18\x05 \x03(\x0b\x32\t.ast.Expr"^\n\rStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x0e\x63ollation_spec\x18\x03 \x01(\t">\n\x0cStringConcat\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07strings\x18\x02 \x03(\t"\xb7L\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\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\x0ftrait_string_fn\x18\x0e \x01(\x0b\x32\r.ast.StringFnH\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\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x42 \x01(\x0b\x32\r.ast.SpColumnH\x00\x12-\n\x0fsp_column_alias\x18\x43 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x44 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x45 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x46 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18G \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18H \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18I \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18J \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18K \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18L \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18M \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18N \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18O \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18P \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18Q \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18R \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18S \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18T \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18U \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18V \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18W \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18X \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Y \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18Z \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18[ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\\ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18] \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18^ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18_ \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x61 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x63 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x65 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18g \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18j \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18k \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18l \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18m \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18n \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18o \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18r \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18s \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18v \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18w \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18x \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18y \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18{ \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18| \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18} \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x31\n\x11sp_dataframe_show\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x83\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x85\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x86\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x87\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x88\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x89\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8a\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8b\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8c\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8d\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8e\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x91\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x92\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x93\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x94\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x96\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x97\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x98\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x99\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9a\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9b\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9c\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9d\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9e\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa5\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa6\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa7\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa8\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa9\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xaa\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xab\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xad\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xae\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xaf\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb0\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb1\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb2\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb3\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb5\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb6\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb7\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb8\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb9\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\xba\x02\n\x0cSpColumnExpr\x12"\n\tsp_column\x18\x01 \x01(\x0b\x32\r.ast.SpColumnH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"g\n\x08SpColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\xcf\x06\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\x32\n\x12sp_column_try_cast\x18\x0f \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x10 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9e\x1d\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x0f \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x10 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x11 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x12 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x13 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x14 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x15 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x16 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x17 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18\x18 \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x19 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1a \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1b \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18\x1c \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18\x1d \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1e \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18! \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18" \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18% \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18& \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\' \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18( \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18) \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18* \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18+ \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18, \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18- \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18. \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18/ \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18\x30 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18\x31 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x32 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x33 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x34 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x35 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x36 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x37 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x38 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x39 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18: \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18; \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18< \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18= \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"5\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"Y\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x81\x01\n\x11SpDataframeNaDrop\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\x84\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12.\n\tvalue_map\x18\x03 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant"\x9e\x01\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x33\n\x0breplacement\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_SpVariant_SpVariant"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xa1\x01\n\x10SpDataframeFirst\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\r\n\x05\x62lock\x18\x04 \x01(\x08\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc7\x01\n\x16SpDataframeRandomSplit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07weights\x18\x03 \x03(\x01\x12)\n\x04seed\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x01"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xe3L\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x04 \x01(\x0b\x32\t.ast.ExprH\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\x0ftrait_string_fn\x18\x0f \x01(\x0b\x32\r.ast.StringFnH\x00\x12&\n\x0etrait_unary_op\x18\x10 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x11 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x12 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x13 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x14 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x15 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x16 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x17 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x18 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x19 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1a \x01(\x0b\x32\x0c.ast.BoolValH\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\x1a\n\x05py_fn\x18\x39 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18@ \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18\x41 \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x43 \x01(\x0b\x32\r.ast.SpColumnH\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+\n\x0esp_column_cast\x18I \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18J \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18K \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18L \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18M \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18N \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18O \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18P \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18Q \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18R \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18S \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18T \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18U \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18V \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18W \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18X \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Y \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Z \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18[ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\\ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18] \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18^ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18_ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x64 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x65 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x66 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18g \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18h \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18j \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18k \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18l \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18m \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18n \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18o \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18p \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18r \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18s \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18t \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18v \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18w \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18x \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18y \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18| \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18} \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x83\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x85\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x86\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x87\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8c\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8d\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8e\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8f\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x92\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x93\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x94\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x95\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x97\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x98\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x99\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9a\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9b\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9c\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9e\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9f\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa2\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa3\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa4\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa5\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa6\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa7\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa8\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa9\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xaa\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xab\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xad\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xae\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xaf\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xb0\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb1\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb2\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb3\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb5\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb6\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb7\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb8\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb9\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xba\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' ) _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "proto.ast_pb2", 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" - _LIST_SPCOLUMNEXPR._serialized_start = 56 - _LIST_SPCOLUMNEXPR._serialized_end = 108 - _LIST_STRING._serialized_start = 110 - _LIST_STRING._serialized_end = 137 - _MAP_STRING_SPVARIANT._serialized_start = 139 - _MAP_STRING_SPVARIANT._serialized_end = 204 - _MAP_STRING_STRING._serialized_start = 206 - _MAP_STRING_STRING._serialized_end = 265 - _TUPLE_SPVARIANT_SPVARIANT._serialized_start = 267 - _TUPLE_SPVARIANT_SPVARIANT._serialized_end = 350 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start = 352 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end = 449 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 451 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 521 - _TUPLE_STRING_SPVARIANT._serialized_start = 523 - _TUPLE_STRING_SPVARIANT._serialized_end = 587 - _TUPLE_STRING_STRING._serialized_start = 589 - _TUPLE_STRING_STRING._serialized_end = 634 - _LANGUAGE._serialized_start = 637 - _LANGUAGE._serialized_end = 801 - _PYTHONLANGUAGE._serialized_start = 803 - _PYTHONLANGUAGE._serialized_end = 850 - _SCALALANGUAGE._serialized_start = 852 - _SCALALANGUAGE._serialized_end = 898 - _JAVALANGUAGE._serialized_start = 900 - _JAVALANGUAGE._serialized_end = 945 - _VERSION._serialized_start = 947 - _VERSION._serialized_end = 1016 - _PYTHONTIMEZONE._serialized_start = 1018 - _PYTHONTIMEZONE._serialized_end = 1102 - _PDINDEXEXPR._serialized_start = 1104 - _PDINDEXEXPR._serialized_end = 1217 - _ORD._serialized_start = 1219 - _ORD._serialized_end = 1246 - _FLEXORD._serialized_start = 1248 - _FLEXORD._serialized_end = 1279 - _KEY._serialized_start = 1281 - _KEY._serialized_end = 1308 - _PDPROJECTINDEXEXPR._serialized_start = 1311 - _PDPROJECTINDEXEXPR._serialized_end = 1624 - _ORDRANGE._serialized_start = 1626 - _ORDRANGE._serialized_end = 1712 - _FLEXORDRANGE._serialized_start = 1714 - _FLEXORDRANGE._serialized_end = 1804 - _KEYRANGE._serialized_start = 1806 - _KEYRANGE._serialized_end = 1867 - _ORDLIST._serialized_start = 1869 - _ORDLIST._serialized_end = 1903 - _FLEXORDLIST._serialized_start = 1905 - _FLEXORDLIST._serialized_end = 1943 - _KEYLIST._serialized_start = 1945 - _KEYLIST._serialized_end = 1979 - _BOOLFILTERLIST._serialized_start = 1981 - _BOOLFILTERLIST._serialized_end = 2024 - _SPFLATTENMODE._serialized_start = 2026 - _SPFLATTENMODE._serialized_end = 2151 - _SPGROUPINGSETS._serialized_start = 2153 - _SPGROUPINGSETS._serialized_end = 2207 - _SPSAVEMODE._serialized_start = 2210 - _SPSAVEMODE._serialized_end = 2369 - _SPJOINTYPE._serialized_start = 2372 - _SPJOINTYPE._serialized_end = 2666 - _SPWINDOWSPECEXPR._serialized_start = 2669 - _SPWINDOWSPECEXPR._serialized_end = 3130 - _SPWINDOWSPECORDERBY._serialized_start = 3132 - _SPWINDOWSPECORDERBY._serialized_end = 3222 - _SPWINDOWSPECPARTITIONBY._serialized_start = 3224 - _SPWINDOWSPECPARTITIONBY._serialized_end = 3318 - _SPWINDOWSPECRANGEBETWEEN._serialized_start = 3320 - _SPWINDOWSPECRANGEBETWEEN._serialized_end = 3410 - _SPWINDOWSPECROWSBETWEEN._serialized_start = 3412 - _SPWINDOWSPECROWSBETWEEN._serialized_end = 3501 - _SPTIMESTAMPTIMEZONE._serialized_start = 3504 - _SPTIMESTAMPTIMEZONE._serialized_end = 3691 - _SPDATATYPE._serialized_start = 3694 - _SPDATATYPE._serialized_end = 4496 - _SPARRAYTYPE._serialized_start = 4498 - _SPARRAYTYPE._serialized_end = 4560 - _SPCOLUMNIDENTIFIER._serialized_start = 4562 - _SPCOLUMNIDENTIFIER._serialized_end = 4596 - _SPDECIMALTYPE._serialized_start = 4598 - _SPDECIMALTYPE._serialized_end = 4647 - _SPMAPTYPE._serialized_start = 4649 - _SPMAPTYPE._serialized_end = 4748 - _SPSTRINGTYPE._serialized_start = 4750 - _SPSTRINGTYPE._serialized_end = 4809 - _SPSTRUCTFIELD._serialized_start = 4811 - _SPSTRUCTFIELD._serialized_end = 4932 - _SPSTRUCTTYPE._serialized_start = 4934 - _SPSTRUCTTYPE._serialized_end = 5004 - _SPTIMESTAMPTYPE._serialized_start = 5006 - _SPTIMESTAMPTYPE._serialized_end = 5068 - _SPVECTORTYPE._serialized_start = 5070 - _SPVECTORTYPE._serialized_end = 5132 - _SPVARIANT._serialized_start = 5135 - _SPVARIANT._serialized_end = 5841 - _SPVARIANT_OBJECT._serialized_start = 5843 - _SPVARIANT_OBJECT._serialized_end = 5898 - _SPVARIANT_LIST._serialized_start = 5900 - _SPVARIANT_LIST._serialized_end = 5951 - _SPVARIANT_TIMESTAMP._serialized_start = 5953 - _SPVARIANT_TIMESTAMP._serialized_end = 5985 - _SPVARIANT_DATE._serialized_start = 5987 - _SPVARIANT_DATE._serialized_end = 6014 - _SPVARIANT_TIME._serialized_start = 6016 - _SPVARIANT_TIME._serialized_end = 6043 - _SPVARIANT_BYTES._serialized_start = 6045 - _SPVARIANT_BYTES._serialized_end = 6073 - _SPVARIANT_STRING._serialized_start = 6075 - _SPVARIANT_STRING._serialized_end = 6104 - _SPVARIANT_BOOL._serialized_start = 6106 - _SPVARIANT_BOOL._serialized_end = 6133 - _SPVARIANT_BIGINT._serialized_start = 6135 - _SPVARIANT_BIGINT._serialized_end = 6164 - _SPVARIANT_BIGDECIMAL._serialized_start = 6166 - _SPVARIANT_BIGDECIMAL._serialized_end = 6199 - _SPVARIANT_INT._serialized_start = 6201 - _SPVARIANT_INT._serialized_end = 6227 - _SPVARIANT_FLOAT._serialized_start = 6229 - _SPVARIANT_FLOAT._serialized_end = 6257 - _SPVARIANT_DOUBLE._serialized_start = 6259 - _SPVARIANT_DOUBLE._serialized_end = 6288 - _SPROW._serialized_start = 6290 - _SPROW._serialized_end = 6325 - _SRCPOSITION._serialized_start = 6327 - _SRCPOSITION._serialized_end = 6434 - _VARID._serialized_start = 6436 - _VARID._serialized_end = 6462 - _REQUEST._serialized_start = 6464 - _REQUEST._serialized_end = 6576 - _RESPONSE._serialized_start = 6578 - _RESPONSE._serialized_end = 6615 - _CONST._serialized_start = 6618 - _CONST._serialized_end = 7305 - _NONEVAL._serialized_start = 7307 - _NONEVAL._serialized_end = 7347 - _NULLVAL._serialized_start = 7349 - _NULLVAL._serialized_end = 7389 - _BOOLVAL._serialized_start = 7391 - _BOOLVAL._serialized_end = 7442 - _INT32VAL._serialized_start = 7444 - _INT32VAL._serialized_end = 7496 - _INT64VAL._serialized_start = 7498 - _INT64VAL._serialized_end = 7550 - _FLOAT64VAL._serialized_start = 7552 - _FLOAT64VAL._serialized_end = 7606 - _BIGINTVAL._serialized_start = 7608 - _BIGINTVAL._serialized_end = 7661 - _BIGDECIMALVAL._serialized_start = 7663 - _BIGDECIMALVAL._serialized_end = 7748 - _STRINGVAL._serialized_start = 7750 - _STRINGVAL._serialized_end = 7803 - _BINARYVAL._serialized_start = 7805 - _BINARYVAL._serialized_end = 7858 - _TIMESTAMPVAL._serialized_start = 7860 - _TIMESTAMPVAL._serialized_end = 7916 - _DATEVAL._serialized_start = 7918 - _DATEVAL._serialized_end = 7969 - _TIMEVAL._serialized_start = 7971 - _TIMEVAL._serialized_end = 8022 - _PYTHONTIMESTAMPVAL._serialized_start = 8025 - _PYTHONTIMESTAMPVAL._serialized_end = 8218 - _PYTHONDATEVAL._serialized_start = 8220 - _PYTHONDATEVAL._serialized_end = 8308 - _PYTHONTIMEVAL._serialized_start = 8311 - _PYTHONTIMEVAL._serialized_end = 8457 - _FNVAL._serialized_start = 8459 - _FNVAL._serialized_end = 8538 - _IFEXPR._serialized_start = 8540 - _IFEXPR._serialized_end = 8661 - _SOMEVAL._serialized_start = 8663 - _SOMEVAL._serialized_end = 8725 - _TUPLEVAL._serialized_start = 8727 - _TUPLEVAL._serialized_end = 8791 - _LISTVAL._serialized_start = 8793 - _LISTVAL._serialized_end = 8856 - _SEQMAPVAL._serialized_start = 8858 - _SEQMAPVAL._serialized_end = 8928 - _BUILTINFNEXPR._serialized_start = 8931 - _BUILTINFNEXPR._serialized_end = 9554 - _APPLYEXPR._serialized_start = 9556 - _APPLYEXPR._serialized_end = 9646 - _PYFN._serialized_start = 9648 - _PYFN._serialized_end = 9728 - _SNOWFLAKEUDF._serialized_start = 9730 - _SNOWFLAKEUDF._serialized_end = 9805 - _SNOWFLAKESPROC._serialized_start = 9807 - _SNOWFLAKESPROC._serialized_end = 9884 - _UNARYOP._serialized_start = 9886 - _UNARYOP._serialized_end = 9956 - _BINOP._serialized_start = 9959 - _BINOP._serialized_end = 10413 - _NOT._serialized_start = 10415 - _NOT._serialized_end = 10479 - _AND._serialized_start = 10481 - _AND._serialized_end = 10565 - _OR._serialized_start = 10567 - _OR._serialized_end = 10650 - _EQ._serialized_start = 10652 - _EQ._serialized_end = 10735 - _NEQ._serialized_start = 10737 - _NEQ._serialized_end = 10821 - _LT._serialized_start = 10823 - _LT._serialized_end = 10906 - _LEQ._serialized_start = 10908 - _LEQ._serialized_end = 10992 - _GT._serialized_start = 10994 - _GT._serialized_end = 11077 - _GEQ._serialized_start = 11079 - _GEQ._serialized_end = 11163 - _NEG._serialized_start = 11165 - _NEG._serialized_end = 11229 - _ADD._serialized_start = 11231 - _ADD._serialized_end = 11315 - _SUB._serialized_start = 11317 - _SUB._serialized_end = 11401 - _MUL._serialized_start = 11403 - _MUL._serialized_end = 11487 - _DIV._serialized_start = 11489 - _DIV._serialized_end = 11573 - _MOD._serialized_start = 11575 - _MOD._serialized_end = 11659 - _POW._serialized_start = 11661 - _POW._serialized_end = 11745 - _BITAND._serialized_start = 11747 - _BITAND._serialized_end = 11834 - _BITOR._serialized_start = 11836 - _BITOR._serialized_end = 11922 - _BITXOR._serialized_start = 11924 - _BITXOR._serialized_end = 12011 - _RANGEVAL._serialized_start = 12013 - _RANGEVAL._serialized_end = 12130 - _STRINGFN._serialized_start = 12133 - _STRINGFN._serialized_end = 12665 - _STRINGLEN._serialized_start = 12667 - _STRINGLEN._serialized_end = 12733 - _STRINGTOUPPER._serialized_start = 12735 - _STRINGTOUPPER._serialized_end = 12805 - _STRINGTOLOWER._serialized_start = 12807 - _STRINGTOLOWER._serialized_end = 12877 - _STRINGSTARTSWITH._serialized_start = 12879 - _STRINGSTARTSWITH._serialized_end = 12979 - _STRINGENDSWITH._serialized_start = 12981 - _STRINGENDSWITH._serialized_end = 13079 - _STRINGSUBSTR._serialized_start = 13081 - _STRINGSUBSTR._serialized_end = 13198 - _STRINGCONTAINS._serialized_start = 13200 - _STRINGCONTAINS._serialized_end = 13299 - _STRINGLIKE._serialized_start = 13301 - _STRINGLIKE._serialized_end = 13396 - _STRINGREGEXP._serialized_start = 13398 - _STRINGREGEXP._serialized_end = 13495 - _STRINGREGEXPCOUNT._serialized_start = 13498 - _STRINGREGEXPCOUNT._serialized_end = 13651 - _STRINGCOLLATE._serialized_start = 13653 - _STRINGCOLLATE._serialized_end = 13747 - _STRINGCONCAT._serialized_start = 13749 - _STRINGCONCAT._serialized_end = 13811 - _EXPR._serialized_start = 13814 - _EXPR._serialized_end = 23476 - _REF._serialized_start = 23478 - _REF._serialized_end = 23542 - _CASTEXPR._serialized_start = 23544 - _CASTEXPR._serialized_end = 23631 - _PDDATAFRAME._serialized_start = 23634 - _PDDATAFRAME._serialized_end = 23783 - _PDDROPNA._serialized_start = 23786 - _PDDROPNA._serialized_end = 23928 - _PDDATAFRAMEGETITEM._serialized_start = 23930 - _PDDATAFRAMEGETITEM._serialized_end = 24031 - _PDDATAFRAMESETITEM._serialized_start = 24033 - _PDDATAFRAMESETITEM._serialized_end = 24156 - _PDDATAFRAMELOC._serialized_start = 24158 - _PDDATAFRAMELOC._serialized_end = 24280 - _PDDATAFRAMEILOC._serialized_start = 24282 - _PDDATAFRAMEILOC._serialized_end = 24405 - _PDREPR._serialized_start = 24407 - _PDREPR._serialized_end = 24521 - _PDREPRRESULT._serialized_start = 24523 - _PDREPRRESULT._serialized_end = 24640 - _RESULT._serialized_start = 24643 - _RESULT._serialized_end = 24801 - _EVALRESULT._serialized_start = 24804 - _EVALRESULT._serialized_end = 25576 - _EVALOK._serialized_start = 25578 - _EVALOK._serialized_end = 25658 - _ERROR._serialized_start = 25660 - _ERROR._serialized_end = 25750 - _SESSIONRESETREQUIREDERROR._serialized_start = 25752 - _SESSIONRESETREQUIREDERROR._serialized_end = 25820 - _SPCOLUMNEXPR._serialized_start = 25823 - _SPCOLUMNEXPR._serialized_end = 26137 - _SPCOLUMNREF._serialized_start = 26139 - _SPCOLUMNREF._serialized_end = 26195 - _SPCOLUMN._serialized_start = 26197 - _SPCOLUMN._serialized_end = 26300 - _SPCOLUMNSQLEXPR._serialized_start = 26302 - _SPCOLUMNSQLEXPR._serialized_end = 26411 - _SPCOLUMNFN._serialized_start = 26414 - _SPCOLUMNFN._serialized_end = 27261 - _SPCOLUMNALIAS._serialized_start = 27264 - _SPCOLUMNALIAS._serialized_end = 27399 - _SPCOLUMNAPPLY_INT._serialized_start = 27401 - _SPCOLUMNAPPLY_INT._serialized_end = 27488 - _SPCOLUMNAPPLY_STRING._serialized_start = 27490 - _SPCOLUMNAPPLY_STRING._serialized_end = 27582 - _SPCOLUMNASC._serialized_start = 27584 - _SPCOLUMNASC._serialized_end = 27701 - _SPCOLUMNBETWEEN._serialized_start = 27704 - _SPCOLUMNBETWEEN._serialized_end = 27840 - _SPCOLUMNCAST._serialized_start = 27842 - _SPCOLUMNCAST._serialized_end = 27940 - _SPCOLUMNTRYCAST._serialized_start = 27942 - _SPCOLUMNTRYCAST._serialized_end = 28043 - _SPCOLUMNDESC._serialized_start = 28045 - _SPCOLUMNDESC._serialized_end = 28163 - _SPCOLUMNEQUALNAN._serialized_start = 28165 - _SPCOLUMNEQUALNAN._serialized_end = 28238 - _SPCOLUMNEQUALNULL._serialized_start = 28240 - _SPCOLUMNEQUALNULL._serialized_end = 28338 - _SPCOLUMNIN_DATAFRAME._serialized_start = 28340 - _SPCOLUMNIN_DATAFRAME._serialized_end = 28451 - _SPCOLUMNIN_SEQ._serialized_start = 28453 - _SPCOLUMNIN_SEQ._serialized_end = 28551 - _SPCOLUMNISNOTNULL._serialized_start = 28553 - _SPCOLUMNISNOTNULL._serialized_end = 28627 - _SPCOLUMNISNULL._serialized_start = 28629 - _SPCOLUMNISNULL._serialized_end = 28700 - _SPCOLUMNNAME._serialized_start = 28702 - _SPCOLUMNNAME._serialized_end = 28786 - _SPCOLUMNOVER._serialized_start = 28788 - _SPCOLUMNOVER._serialized_end = 28901 - _SPCOLUMNWITHINGROUP._serialized_start = 28903 - _SPCOLUMNWITHINGROUP._serialized_end = 29022 - _SPDATAFRAMEEXPR._serialized_start = 29025 - _SPDATAFRAMEEXPR._serialized_end = 32648 - _SPDATAFRAMEREF._serialized_start = 32650 - _SPDATAFRAMEREF._serialized_end = 32721 - _SPDATAFRAMESHOW._serialized_start = 32723 - _SPDATAFRAMESHOW._serialized_end = 32795 - _SPCREATEDATAFRAME._serialized_start = 32798 - _SPCREATEDATAFRAME._serialized_end = 32927 - _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 32930 - _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 33119 - _SPFLATTEN_COLUMN._serialized_start = 33121 - _SPFLATTEN_COLUMN._serialized_end = 33204 - _SPGENERATOR._serialized_start = 33206 - _SPGENERATOR._serialized_end = 33323 - _SPRANGE._serialized_start = 33326 - _SPRANGE._serialized_end = 33466 - _SPSQL._serialized_start = 33468 - _SPSQL._serialized_end = 33521 - _SPSTOREDPROCEDURE._serialized_start = 33523 - _SPSTOREDPROCEDURE._serialized_end = 33638 - _SPTABLE._serialized_start = 33640 - _SPTABLE._serialized_end = 33729 - _SPTABLEFUNCTION._serialized_start = 33731 - _SPTABLEFUNCTION._serialized_end = 33855 - _SPDATAFRAMETODF._serialized_start = 33857 - _SPDATAFRAMETODF._serialized_end = 33976 - _SPDATAFRAMENADROP._serialized_start = 33979 - _SPDATAFRAMENADROP._serialized_end = 34108 - _SPDATAFRAMENAFILL._serialized_start = 34111 - _SPDATAFRAMENAFILL._serialized_end = 34243 - _SPDATAFRAMENAREPLACE._serialized_start = 34246 - _SPDATAFRAMENAREPLACE._serialized_end = 34404 - _SPDATAFRAMEAGG._serialized_start = 34407 - _SPDATAFRAMEAGG._serialized_end = 34540 - _SPDATAFRAMEAPPLY._serialized_start = 34542 - _SPDATAFRAMEAPPLY._serialized_end = 34643 - _SPDATAFRAMECOL._serialized_start = 34645 - _SPDATAFRAMECOL._serialized_end = 34744 - _SPDATAFRAMECROSSJOIN._serialized_start = 34746 - _SPDATAFRAMECROSSJOIN._serialized_end = 34869 - _SPDATAFRAMECUBE._serialized_start = 34872 - _SPDATAFRAMECUBE._serialized_end = 35005 - _SPDATAFRAMEDISTINCT._serialized_start = 35007 - _SPDATAFRAMEDISTINCT._serialized_end = 35093 - _SPDATAFRAMEDROP_COLUMNS._serialized_start = 35096 - _SPDATAFRAMEDROP_COLUMNS._serialized_end = 35237 - _SPDATAFRAMEDROP_STRINGS._serialized_start = 35239 - _SPDATAFRAMEDROP_STRINGS._serialized_end = 35361 - _SPDATAFRAMEDROPDUPLICATES._serialized_start = 35363 - _SPDATAFRAMEDROPDUPLICATES._serialized_end = 35469 - _SPDATAFRAMEEXCEPT._serialized_start = 35471 - _SPDATAFRAMEEXCEPT._serialized_end = 35592 - _SPDATAFRAMEFILTER._serialized_start = 35594 - _SPDATAFRAMEFILTER._serialized_end = 35716 - _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 35719 - _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 35951 - _SPDATAFRAMEFLATTEN_COLUMN._serialized_start = 35953 - _SPDATAFRAMEFLATTEN_COLUMN._serialized_end = 36079 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 36082 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 36226 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 36228 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 36353 - _SPDATAFRAMEGROUPBY._serialized_start = 36355 - _SPDATAFRAMEGROUPBY._serialized_end = 36440 - _SPDATAFRAMEINTERSECT._serialized_start = 36442 - _SPDATAFRAMEINTERSECT._serialized_end = 36566 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 36569 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 36839 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 36842 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 37118 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 37121 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 37337 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 37340 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 37576 - _SPDATAFRAMELIMIT._serialized_start = 37578 - _SPDATAFRAMELIMIT._serialized_end = 37672 - _SPDATAFRAMENATURALJOIN._serialized_start = 37675 - _SPDATAFRAMENATURALJOIN._serialized_end = 37836 - _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 37839 - _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 38002 - _SPDATAFRAMEPIVOT_STRING._serialized_start = 38005 - _SPDATAFRAMEPIVOT_STRING._serialized_end = 38149 - _SPDATAFRAMERENAME._serialized_start = 38152 - _SPDATAFRAMERENAME._serialized_end = 38286 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 38289 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 38432 - _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 38434 - _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 38558 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_start = 38560 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_end = 38681 - _SPDATAFRAMESAMPLE_LONG._serialized_start = 38683 - _SPDATAFRAMESAMPLE_LONG._serialized_end = 38785 - _SPDATAFRAMESELECT_COLUMNS._serialized_start = 38788 - _SPDATAFRAMESELECT_COLUMNS._serialized_end = 38923 - _SPDATAFRAMESELECT_STRINGS._serialized_start = 38925 - _SPDATAFRAMESELECT_STRINGS._serialized_end = 39049 - _SPDATAFRAMESORT._serialized_start = 39052 - _SPDATAFRAMESORT._serialized_end = 39185 - _SPDATAFRAMEUNION._serialized_start = 39187 - _SPDATAFRAMEUNION._serialized_end = 39306 - _SPDATAFRAMEUNIONALL._serialized_start = 39308 - _SPDATAFRAMEUNIONALL._serialized_end = 39430 - _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 39433 - _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 39561 - _SPDATAFRAMEUNIONBYNAME._serialized_start = 39563 - _SPDATAFRAMEUNIONBYNAME._serialized_end = 39688 - _SPDATAFRAMEWHERE._serialized_start = 39690 - _SPDATAFRAMEWHERE._serialized_end = 39811 - _SPDATAFRAMEWITHCOLUMN._serialized_start = 39814 - _SPDATAFRAMEWITHCOLUMN._serialized_end = 39952 - _SPDATAFRAMEWITHCOLUMNS._serialized_start = 39955 - _SPDATAFRAMEWITHCOLUMNS._serialized_end = 40098 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 40101 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 40260 - _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 40263 - _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 40779 - _SPDATAFRAMEREADEROPTIONS._serialized_start = 40781 - _SPDATAFRAMEREADEROPTIONS._serialized_end = 40835 - _SPDATAFRAMEREADERSCHEMA._serialized_start = 40837 - _SPDATAFRAMEREADERSCHEMA._serialized_end = 40890 - _SPREADAVRO._serialized_start = 40892 - _SPREADAVRO._serialized_end = 40949 - _SPREADCSV._serialized_start = 40951 - _SPREADCSV._serialized_end = 41007 - _SPREADJSON._serialized_start = 41009 - _SPREADJSON._serialized_end = 41066 - _SPREADORC._serialized_start = 41068 - _SPREADORC._serialized_end = 41124 - _SPREADPARQUET._serialized_start = 41126 - _SPREADPARQUET._serialized_end = 41186 - _SPREADTABLE._serialized_start = 41188 - _SPREADTABLE._serialized_end = 41246 - _SPREADXML._serialized_start = 41248 - _SPREADXML._serialized_end = 41304 - _SPCOPYINTO._serialized_start = 41307 - _SPCOPYINTO._serialized_end = 41510 - _SPDATAFRAMEWRITER._serialized_start = 41513 - _SPDATAFRAMEWRITER._serialized_end = 41876 - _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 41878 - _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 41933 - _SPDATAFRAMEWRITEROPTIONS._serialized_start = 41935 - _SPDATAFRAMEWRITEROPTIONS._serialized_end = 41989 - _SPWRITECSV._serialized_start = 41991 - _SPWRITECSV._serialized_end = 42082 - _SPWRITEJSON._serialized_start = 42084 - _SPWRITEJSON._serialized_end = 42176 - _SPWRITEPARQUET._serialized_start = 42178 - _SPWRITEPARQUET._serialized_end = 42273 - _SPWRITETABLE._serialized_start = 42276 - _SPWRITETABLE._serialized_end = 42425 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start = 42427 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end = 42493 - _SPDATAFRAMESTATSCORR._serialized_start = 42495 - _SPDATAFRAMESTATSCORR._serialized_end = 42551 - _SPDATAFRAMESTATSCOV._serialized_start = 42553 - _SPDATAFRAMESTATSCOV._serialized_end = 42608 - _SPDATAFRAMESTATSCROSSTAB._serialized_start = 42610 - _SPDATAFRAMESTATSCROSSTAB._serialized_end = 42729 - _SPDATAFRAMESTATSSAMPLEBY._serialized_start = 42732 - _SPDATAFRAMESTATSSAMPLEBY._serialized_end = 42913 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 42916 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 44525 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 44528 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 44721 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 44724 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 44899 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 44902 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 45055 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 45058 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 45206 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 45209 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 45379 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 45381 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 45498 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 45501 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 45649 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 45652 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 45801 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 45804 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 45955 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 45958 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 46106 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 46109 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 46257 - _SPDATAFRAMETYPE._serialized_start = 46259 - _SPDATAFRAMETYPE._serialized_end = 46317 - _SPGROUPEDDATAFRAMETYPE._serialized_start = 46319 - _SPGROUPEDDATAFRAMETYPE._serialized_end = 46389 - _SPWINDOWTYPE._serialized_start = 46391 - _SPWINDOWTYPE._serialized_end = 46405 - _SPCOLEXPRTYPE._serialized_start = 46407 - _SPCOLEXPRTYPE._serialized_end = 46446 - _HASSRCPOSITION._serialized_start = 46449 - _HASSRCPOSITION._serialized_end = 56155 - _STMT._serialized_start = 56157 - _STMT._serialized_end = 56232 - _ASSIGN._serialized_start = 56234 - _ASSIGN._serialized_end = 56354 - _EVAL._serialized_start = 56356 - _EVAL._serialized_end = 56403 - _TYPE._serialized_start = 56406 - _TYPE._serialized_end = 57366 - _UNKNOWNTYPE._serialized_start = 57368 - _UNKNOWNTYPE._serialized_end = 57381 - _ANYTYPE._serialized_start = 57383 - _ANYTYPE._serialized_end = 57392 - _SCALARTYPE._serialized_start = 57395 - _SCALARTYPE._serialized_end = 57696 - _NUMERICTYPE._serialized_start = 57699 - _NUMERICTYPE._serialized_end = 57881 - _NUMBERTYPE._serialized_start = 57883 - _NUMBERTYPE._serialized_end = 57895 - _NOTHINGTYPE._serialized_start = 57897 - _NOTHINGTYPE._serialized_end = 57910 - _UNITTYPE._serialized_start = 57912 - _UNITTYPE._serialized_end = 57922 - _BOOLTYPE._serialized_start = 57924 - _BOOLTYPE._serialized_end = 57934 - _INT32TYPE._serialized_start = 57936 - _INT32TYPE._serialized_end = 57947 - _INT64TYPE._serialized_start = 57949 - _INT64TYPE._serialized_end = 57960 - _FLOAT64TYPE._serialized_start = 57962 - _FLOAT64TYPE._serialized_end = 57975 - _STRINGTYPE._serialized_start = 57977 - _STRINGTYPE._serialized_end = 57989 - _PDREPRTYPE._serialized_start = 57991 - _PDREPRTYPE._serialized_end = 58003 - _FNTYPE._serialized_start = 58005 - _FNTYPE._serialized_end = 58064 - _OPTIONTYPE._serialized_start = 58066 - _OPTIONTYPE._serialized_end = 58102 - _TUPLETYPE._serialized_start = 58104 - _TUPLETYPE._serialized_end = 58139 - _LISTTYPE._serialized_start = 58141 - _LISTTYPE._serialized_end = 58175 - _MAPTYPE._serialized_start = 58177 - _MAPTYPE._serialized_end = 58230 - _TYVAR._serialized_start = 58232 - _TYVAR._serialized_end = 58251 + _LIST_SPCOLUMNEXPR._serialized_start = 65 + _LIST_SPCOLUMNEXPR._serialized_end = 117 + _LIST_STRING._serialized_start = 119 + _LIST_STRING._serialized_end = 146 + _MAP_STRING_SPVARIANT._serialized_start = 148 + _MAP_STRING_SPVARIANT._serialized_end = 213 + _MAP_STRING_STRING._serialized_start = 215 + _MAP_STRING_STRING._serialized_end = 274 + _TUPLE_SPVARIANT_SPVARIANT._serialized_start = 276 + _TUPLE_SPVARIANT_SPVARIANT._serialized_end = 359 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start = 361 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end = 458 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 460 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 530 + _TUPLE_STRING_SPVARIANT._serialized_start = 532 + _TUPLE_STRING_SPVARIANT._serialized_end = 596 + _TUPLE_STRING_STRING._serialized_start = 598 + _TUPLE_STRING_STRING._serialized_end = 643 + _LANGUAGE._serialized_start = 646 + _LANGUAGE._serialized_end = 810 + _PYTHONLANGUAGE._serialized_start = 812 + _PYTHONLANGUAGE._serialized_end = 859 + _SCALALANGUAGE._serialized_start = 861 + _SCALALANGUAGE._serialized_end = 907 + _JAVALANGUAGE._serialized_start = 909 + _JAVALANGUAGE._serialized_end = 954 + _VERSION._serialized_start = 956 + _VERSION._serialized_end = 1025 + _PYTHONTIMEZONE._serialized_start = 1027 + _PYTHONTIMEZONE._serialized_end = 1111 + _PDINDEXEXPR._serialized_start = 1113 + _PDINDEXEXPR._serialized_end = 1226 + _ORD._serialized_start = 1228 + _ORD._serialized_end = 1255 + _FLEXORD._serialized_start = 1257 + _FLEXORD._serialized_end = 1288 + _KEY._serialized_start = 1290 + _KEY._serialized_end = 1317 + _PDPROJECTINDEXEXPR._serialized_start = 1320 + _PDPROJECTINDEXEXPR._serialized_end = 1633 + _ORDRANGE._serialized_start = 1635 + _ORDRANGE._serialized_end = 1721 + _FLEXORDRANGE._serialized_start = 1723 + _FLEXORDRANGE._serialized_end = 1813 + _KEYRANGE._serialized_start = 1815 + _KEYRANGE._serialized_end = 1876 + _ORDLIST._serialized_start = 1878 + _ORDLIST._serialized_end = 1912 + _FLEXORDLIST._serialized_start = 1914 + _FLEXORDLIST._serialized_end = 1952 + _KEYLIST._serialized_start = 1954 + _KEYLIST._serialized_end = 1988 + _BOOLFILTERLIST._serialized_start = 1990 + _BOOLFILTERLIST._serialized_end = 2033 + _SPFLATTENMODE._serialized_start = 2035 + _SPFLATTENMODE._serialized_end = 2160 + _SPGROUPINGSETS._serialized_start = 2162 + _SPGROUPINGSETS._serialized_end = 2216 + _SPSAVEMODE._serialized_start = 2219 + _SPSAVEMODE._serialized_end = 2378 + _SPJOINTYPE._serialized_start = 2381 + _SPJOINTYPE._serialized_end = 2675 + _SPWINDOWSPECEXPR._serialized_start = 2678 + _SPWINDOWSPECEXPR._serialized_end = 3139 + _SPWINDOWSPECORDERBY._serialized_start = 3141 + _SPWINDOWSPECORDERBY._serialized_end = 3231 + _SPWINDOWSPECPARTITIONBY._serialized_start = 3233 + _SPWINDOWSPECPARTITIONBY._serialized_end = 3327 + _SPWINDOWSPECRANGEBETWEEN._serialized_start = 3329 + _SPWINDOWSPECRANGEBETWEEN._serialized_end = 3419 + _SPWINDOWSPECROWSBETWEEN._serialized_start = 3421 + _SPWINDOWSPECROWSBETWEEN._serialized_end = 3510 + _SPTIMESTAMPTIMEZONE._serialized_start = 3513 + _SPTIMESTAMPTIMEZONE._serialized_end = 3700 + _SPDATATYPE._serialized_start = 3703 + _SPDATATYPE._serialized_end = 4505 + _SPARRAYTYPE._serialized_start = 4507 + _SPARRAYTYPE._serialized_end = 4569 + _SPCOLUMNIDENTIFIER._serialized_start = 4571 + _SPCOLUMNIDENTIFIER._serialized_end = 4605 + _SPDECIMALTYPE._serialized_start = 4607 + _SPDECIMALTYPE._serialized_end = 4656 + _SPMAPTYPE._serialized_start = 4658 + _SPMAPTYPE._serialized_end = 4757 + _SPSTRINGTYPE._serialized_start = 4759 + _SPSTRINGTYPE._serialized_end = 4818 + _SPSTRUCTFIELD._serialized_start = 4820 + _SPSTRUCTFIELD._serialized_end = 4941 + _SPSTRUCTTYPE._serialized_start = 4943 + _SPSTRUCTTYPE._serialized_end = 5013 + _SPTIMESTAMPTYPE._serialized_start = 5015 + _SPTIMESTAMPTYPE._serialized_end = 5077 + _SPVECTORTYPE._serialized_start = 5079 + _SPVECTORTYPE._serialized_end = 5141 + _SPVARIANT._serialized_start = 5144 + _SPVARIANT._serialized_end = 5850 + _SPVARIANT_OBJECT._serialized_start = 5852 + _SPVARIANT_OBJECT._serialized_end = 5907 + _SPVARIANT_LIST._serialized_start = 5909 + _SPVARIANT_LIST._serialized_end = 5960 + _SPVARIANT_TIMESTAMP._serialized_start = 5962 + _SPVARIANT_TIMESTAMP._serialized_end = 5994 + _SPVARIANT_DATE._serialized_start = 5996 + _SPVARIANT_DATE._serialized_end = 6023 + _SPVARIANT_TIME._serialized_start = 6025 + _SPVARIANT_TIME._serialized_end = 6052 + _SPVARIANT_BYTES._serialized_start = 6054 + _SPVARIANT_BYTES._serialized_end = 6082 + _SPVARIANT_STRING._serialized_start = 6084 + _SPVARIANT_STRING._serialized_end = 6113 + _SPVARIANT_BOOL._serialized_start = 6115 + _SPVARIANT_BOOL._serialized_end = 6142 + _SPVARIANT_BIGINT._serialized_start = 6144 + _SPVARIANT_BIGINT._serialized_end = 6173 + _SPVARIANT_BIGDECIMAL._serialized_start = 6175 + _SPVARIANT_BIGDECIMAL._serialized_end = 6208 + _SPVARIANT_INT._serialized_start = 6210 + _SPVARIANT_INT._serialized_end = 6236 + _SPVARIANT_FLOAT._serialized_start = 6238 + _SPVARIANT_FLOAT._serialized_end = 6266 + _SPVARIANT_DOUBLE._serialized_start = 6268 + _SPVARIANT_DOUBLE._serialized_end = 6297 + _SPROW._serialized_start = 6299 + _SPROW._serialized_end = 6334 + _SRCPOSITION._serialized_start = 6336 + _SRCPOSITION._serialized_end = 6443 + _VARID._serialized_start = 6445 + _VARID._serialized_end = 6471 + _REQUEST._serialized_start = 6473 + _REQUEST._serialized_end = 6585 + _RESPONSE._serialized_start = 6587 + _RESPONSE._serialized_end = 6624 + _CONST._serialized_start = 6627 + _CONST._serialized_end = 7314 + _NONEVAL._serialized_start = 7316 + _NONEVAL._serialized_end = 7356 + _NULLVAL._serialized_start = 7358 + _NULLVAL._serialized_end = 7398 + _BOOLVAL._serialized_start = 7400 + _BOOLVAL._serialized_end = 7451 + _INT32VAL._serialized_start = 7453 + _INT32VAL._serialized_end = 7505 + _INT64VAL._serialized_start = 7507 + _INT64VAL._serialized_end = 7559 + _FLOAT64VAL._serialized_start = 7561 + _FLOAT64VAL._serialized_end = 7615 + _BIGINTVAL._serialized_start = 7617 + _BIGINTVAL._serialized_end = 7670 + _BIGDECIMALVAL._serialized_start = 7672 + _BIGDECIMALVAL._serialized_end = 7757 + _STRINGVAL._serialized_start = 7759 + _STRINGVAL._serialized_end = 7812 + _BINARYVAL._serialized_start = 7814 + _BINARYVAL._serialized_end = 7867 + _TIMESTAMPVAL._serialized_start = 7869 + _TIMESTAMPVAL._serialized_end = 7925 + _DATEVAL._serialized_start = 7927 + _DATEVAL._serialized_end = 7978 + _TIMEVAL._serialized_start = 7980 + _TIMEVAL._serialized_end = 8031 + _PYTHONTIMESTAMPVAL._serialized_start = 8034 + _PYTHONTIMESTAMPVAL._serialized_end = 8227 + _PYTHONDATEVAL._serialized_start = 8229 + _PYTHONDATEVAL._serialized_end = 8317 + _PYTHONTIMEVAL._serialized_start = 8320 + _PYTHONTIMEVAL._serialized_end = 8466 + _FNVAL._serialized_start = 8468 + _FNVAL._serialized_end = 8547 + _IFEXPR._serialized_start = 8549 + _IFEXPR._serialized_end = 8670 + _SOMEVAL._serialized_start = 8672 + _SOMEVAL._serialized_end = 8734 + _TUPLEVAL._serialized_start = 8736 + _TUPLEVAL._serialized_end = 8800 + _LISTVAL._serialized_start = 8802 + _LISTVAL._serialized_end = 8865 + _SEQMAPVAL._serialized_start = 8867 + _SEQMAPVAL._serialized_end = 8937 + _BUILTINFNEXPR._serialized_start = 8940 + _BUILTINFNEXPR._serialized_end = 9563 + _APPLYEXPR._serialized_start = 9565 + _APPLYEXPR._serialized_end = 9655 + _PYFN._serialized_start = 9657 + _PYFN._serialized_end = 9737 + _SNOWFLAKEUDF._serialized_start = 9739 + _SNOWFLAKEUDF._serialized_end = 9814 + _SNOWFLAKESPROC._serialized_start = 9816 + _SNOWFLAKESPROC._serialized_end = 9893 + _UNARYOP._serialized_start = 9895 + _UNARYOP._serialized_end = 9965 + _BINOP._serialized_start = 9968 + _BINOP._serialized_end = 10422 + _NOT._serialized_start = 10424 + _NOT._serialized_end = 10488 + _AND._serialized_start = 10490 + _AND._serialized_end = 10574 + _OR._serialized_start = 10576 + _OR._serialized_end = 10659 + _EQ._serialized_start = 10661 + _EQ._serialized_end = 10744 + _NEQ._serialized_start = 10746 + _NEQ._serialized_end = 10830 + _LT._serialized_start = 10832 + _LT._serialized_end = 10915 + _LEQ._serialized_start = 10917 + _LEQ._serialized_end = 11001 + _GT._serialized_start = 11003 + _GT._serialized_end = 11086 + _GEQ._serialized_start = 11088 + _GEQ._serialized_end = 11172 + _NEG._serialized_start = 11174 + _NEG._serialized_end = 11238 + _ADD._serialized_start = 11240 + _ADD._serialized_end = 11324 + _SUB._serialized_start = 11326 + _SUB._serialized_end = 11410 + _MUL._serialized_start = 11412 + _MUL._serialized_end = 11496 + _DIV._serialized_start = 11498 + _DIV._serialized_end = 11582 + _MOD._serialized_start = 11584 + _MOD._serialized_end = 11668 + _POW._serialized_start = 11670 + _POW._serialized_end = 11754 + _BITAND._serialized_start = 11756 + _BITAND._serialized_end = 11843 + _BITOR._serialized_start = 11845 + _BITOR._serialized_end = 11931 + _BITXOR._serialized_start = 11933 + _BITXOR._serialized_end = 12020 + _RANGEVAL._serialized_start = 12022 + _RANGEVAL._serialized_end = 12139 + _STRINGFN._serialized_start = 12142 + _STRINGFN._serialized_end = 12674 + _STRINGLEN._serialized_start = 12676 + _STRINGLEN._serialized_end = 12742 + _STRINGTOUPPER._serialized_start = 12744 + _STRINGTOUPPER._serialized_end = 12814 + _STRINGTOLOWER._serialized_start = 12816 + _STRINGTOLOWER._serialized_end = 12886 + _STRINGSTARTSWITH._serialized_start = 12888 + _STRINGSTARTSWITH._serialized_end = 12988 + _STRINGENDSWITH._serialized_start = 12990 + _STRINGENDSWITH._serialized_end = 13088 + _STRINGSUBSTR._serialized_start = 13090 + _STRINGSUBSTR._serialized_end = 13207 + _STRINGCONTAINS._serialized_start = 13209 + _STRINGCONTAINS._serialized_end = 13308 + _STRINGLIKE._serialized_start = 13310 + _STRINGLIKE._serialized_end = 13405 + _STRINGREGEXP._serialized_start = 13407 + _STRINGREGEXP._serialized_end = 13504 + _STRINGREGEXPCOUNT._serialized_start = 13507 + _STRINGREGEXPCOUNT._serialized_end = 13660 + _STRINGCOLLATE._serialized_start = 13662 + _STRINGCOLLATE._serialized_end = 13756 + _STRINGCONCAT._serialized_start = 13758 + _STRINGCONCAT._serialized_end = 13820 + _EXPR._serialized_start = 13823 + _EXPR._serialized_end = 23606 + _REF._serialized_start = 23608 + _REF._serialized_end = 23672 + _CASTEXPR._serialized_start = 23674 + _CASTEXPR._serialized_end = 23761 + _PDDATAFRAME._serialized_start = 23764 + _PDDATAFRAME._serialized_end = 23913 + _PDDROPNA._serialized_start = 23916 + _PDDROPNA._serialized_end = 24058 + _PDDATAFRAMEGETITEM._serialized_start = 24060 + _PDDATAFRAMEGETITEM._serialized_end = 24161 + _PDDATAFRAMESETITEM._serialized_start = 24163 + _PDDATAFRAMESETITEM._serialized_end = 24286 + _PDDATAFRAMELOC._serialized_start = 24288 + _PDDATAFRAMELOC._serialized_end = 24410 + _PDDATAFRAMEILOC._serialized_start = 24412 + _PDDATAFRAMEILOC._serialized_end = 24535 + _PDREPR._serialized_start = 24537 + _PDREPR._serialized_end = 24651 + _PDREPRRESULT._serialized_start = 24653 + _PDREPRRESULT._serialized_end = 24770 + _RESULT._serialized_start = 24773 + _RESULT._serialized_end = 24931 + _EVALRESULT._serialized_start = 24934 + _EVALRESULT._serialized_end = 25706 + _EVALOK._serialized_start = 25708 + _EVALOK._serialized_end = 25788 + _ERROR._serialized_start = 25790 + _ERROR._serialized_end = 25880 + _SESSIONRESETREQUIREDERROR._serialized_start = 25882 + _SESSIONRESETREQUIREDERROR._serialized_end = 25950 + _SPCOLUMNEXPR._serialized_start = 25953 + _SPCOLUMNEXPR._serialized_end = 26267 + _SPCOLUMNREF._serialized_start = 26269 + _SPCOLUMNREF._serialized_end = 26325 + _SPCOLUMN._serialized_start = 26327 + _SPCOLUMN._serialized_end = 26430 + _SPCOLUMNSQLEXPR._serialized_start = 26432 + _SPCOLUMNSQLEXPR._serialized_end = 26541 + _SPCOLUMNFN._serialized_start = 26544 + _SPCOLUMNFN._serialized_end = 27391 + _SPCOLUMNALIAS._serialized_start = 27394 + _SPCOLUMNALIAS._serialized_end = 27529 + _SPCOLUMNAPPLY_INT._serialized_start = 27531 + _SPCOLUMNAPPLY_INT._serialized_end = 27618 + _SPCOLUMNAPPLY_STRING._serialized_start = 27620 + _SPCOLUMNAPPLY_STRING._serialized_end = 27712 + _SPCOLUMNASC._serialized_start = 27714 + _SPCOLUMNASC._serialized_end = 27831 + _SPCOLUMNBETWEEN._serialized_start = 27834 + _SPCOLUMNBETWEEN._serialized_end = 27970 + _SPCOLUMNCAST._serialized_start = 27972 + _SPCOLUMNCAST._serialized_end = 28070 + _SPCOLUMNTRYCAST._serialized_start = 28072 + _SPCOLUMNTRYCAST._serialized_end = 28173 + _SPCOLUMNDESC._serialized_start = 28175 + _SPCOLUMNDESC._serialized_end = 28293 + _SPCOLUMNEQUALNAN._serialized_start = 28295 + _SPCOLUMNEQUALNAN._serialized_end = 28368 + _SPCOLUMNEQUALNULL._serialized_start = 28370 + _SPCOLUMNEQUALNULL._serialized_end = 28468 + _SPCOLUMNIN_DATAFRAME._serialized_start = 28470 + _SPCOLUMNIN_DATAFRAME._serialized_end = 28581 + _SPCOLUMNIN_SEQ._serialized_start = 28583 + _SPCOLUMNIN_SEQ._serialized_end = 28681 + _SPCOLUMNISNOTNULL._serialized_start = 28683 + _SPCOLUMNISNOTNULL._serialized_end = 28757 + _SPCOLUMNISNULL._serialized_start = 28759 + _SPCOLUMNISNULL._serialized_end = 28830 + _SPCOLUMNNAME._serialized_start = 28832 + _SPCOLUMNNAME._serialized_end = 28916 + _SPCOLUMNOVER._serialized_start = 28918 + _SPCOLUMNOVER._serialized_end = 29031 + _SPCOLUMNWITHINGROUP._serialized_start = 29033 + _SPCOLUMNWITHINGROUP._serialized_end = 29152 + _SPDATAFRAMEEXPR._serialized_start = 29155 + _SPDATAFRAMEEXPR._serialized_end = 32897 + _SPDATAFRAMEREF._serialized_start = 32899 + _SPDATAFRAMEREF._serialized_end = 32970 + _SPDATAFRAMESHOW._serialized_start = 32972 + _SPDATAFRAMESHOW._serialized_end = 33044 + _SPCREATEDATAFRAME._serialized_start = 33047 + _SPCREATEDATAFRAME._serialized_end = 33176 + _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 33179 + _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 33368 + _SPFLATTEN_COLUMN._serialized_start = 33370 + _SPFLATTEN_COLUMN._serialized_end = 33453 + _SPGENERATOR._serialized_start = 33455 + _SPGENERATOR._serialized_end = 33572 + _SPRANGE._serialized_start = 33575 + _SPRANGE._serialized_end = 33715 + _SPSQL._serialized_start = 33717 + _SPSQL._serialized_end = 33770 + _SPSTOREDPROCEDURE._serialized_start = 33772 + _SPSTOREDPROCEDURE._serialized_end = 33887 + _SPTABLE._serialized_start = 33889 + _SPTABLE._serialized_end = 33978 + _SPTABLEFUNCTION._serialized_start = 33980 + _SPTABLEFUNCTION._serialized_end = 34104 + _SPDATAFRAMETODF._serialized_start = 34106 + _SPDATAFRAMETODF._serialized_end = 34225 + _SPDATAFRAMENADROP._serialized_start = 34228 + _SPDATAFRAMENADROP._serialized_end = 34357 + _SPDATAFRAMENAFILL._serialized_start = 34360 + _SPDATAFRAMENAFILL._serialized_end = 34492 + _SPDATAFRAMENAREPLACE._serialized_start = 34495 + _SPDATAFRAMENAREPLACE._serialized_end = 34653 + _SPDATAFRAMEAGG._serialized_start = 34656 + _SPDATAFRAMEAGG._serialized_end = 34789 + _SPDATAFRAMEAPPLY._serialized_start = 34791 + _SPDATAFRAMEAPPLY._serialized_end = 34892 + _SPDATAFRAMECOL._serialized_start = 34894 + _SPDATAFRAMECOL._serialized_end = 34993 + _SPDATAFRAMECROSSJOIN._serialized_start = 34995 + _SPDATAFRAMECROSSJOIN._serialized_end = 35118 + _SPDATAFRAMECUBE._serialized_start = 35121 + _SPDATAFRAMECUBE._serialized_end = 35254 + _SPDATAFRAMEDISTINCT._serialized_start = 35256 + _SPDATAFRAMEDISTINCT._serialized_end = 35342 + _SPDATAFRAMEDROP_COLUMNS._serialized_start = 35345 + _SPDATAFRAMEDROP_COLUMNS._serialized_end = 35486 + _SPDATAFRAMEDROP_STRINGS._serialized_start = 35488 + _SPDATAFRAMEDROP_STRINGS._serialized_end = 35610 + _SPDATAFRAMEDROPDUPLICATES._serialized_start = 35612 + _SPDATAFRAMEDROPDUPLICATES._serialized_end = 35718 + _SPDATAFRAMEEXCEPT._serialized_start = 35720 + _SPDATAFRAMEEXCEPT._serialized_end = 35841 + _SPDATAFRAMEFILTER._serialized_start = 35843 + _SPDATAFRAMEFILTER._serialized_end = 35965 + _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 35968 + _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 36200 + _SPDATAFRAMEFLATTEN_COLUMN._serialized_start = 36202 + _SPDATAFRAMEFLATTEN_COLUMN._serialized_end = 36328 + _SPDATAFRAMEFIRST._serialized_start = 36331 + _SPDATAFRAMEFIRST._serialized_end = 36492 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 36495 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 36639 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 36641 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 36766 + _SPDATAFRAMEGROUPBY._serialized_start = 36768 + _SPDATAFRAMEGROUPBY._serialized_end = 36853 + _SPDATAFRAMEINTERSECT._serialized_start = 36855 + _SPDATAFRAMEINTERSECT._serialized_end = 36979 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 36982 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 37252 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 37255 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 37531 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 37534 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 37750 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 37753 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 37989 + _SPDATAFRAMELIMIT._serialized_start = 37991 + _SPDATAFRAMELIMIT._serialized_end = 38085 + _SPDATAFRAMENATURALJOIN._serialized_start = 38088 + _SPDATAFRAMENATURALJOIN._serialized_end = 38249 + _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 38252 + _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 38415 + _SPDATAFRAMEPIVOT_STRING._serialized_start = 38418 + _SPDATAFRAMEPIVOT_STRING._serialized_end = 38562 + _SPDATAFRAMERANDOMSPLIT._serialized_start = 38565 + _SPDATAFRAMERANDOMSPLIT._serialized_end = 38764 + _SPDATAFRAMERENAME._serialized_start = 38767 + _SPDATAFRAMERENAME._serialized_end = 38901 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 38904 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 39047 + _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 39049 + _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 39173 + _SPDATAFRAMESAMPLE_DOUBLE._serialized_start = 39175 + _SPDATAFRAMESAMPLE_DOUBLE._serialized_end = 39296 + _SPDATAFRAMESAMPLE_LONG._serialized_start = 39298 + _SPDATAFRAMESAMPLE_LONG._serialized_end = 39400 + _SPDATAFRAMESELECT_COLUMNS._serialized_start = 39403 + _SPDATAFRAMESELECT_COLUMNS._serialized_end = 39538 + _SPDATAFRAMESELECT_STRINGS._serialized_start = 39540 + _SPDATAFRAMESELECT_STRINGS._serialized_end = 39664 + _SPDATAFRAMESORT._serialized_start = 39667 + _SPDATAFRAMESORT._serialized_end = 39800 + _SPDATAFRAMEUNION._serialized_start = 39802 + _SPDATAFRAMEUNION._serialized_end = 39921 + _SPDATAFRAMEUNIONALL._serialized_start = 39923 + _SPDATAFRAMEUNIONALL._serialized_end = 40045 + _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 40048 + _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 40176 + _SPDATAFRAMEUNIONBYNAME._serialized_start = 40178 + _SPDATAFRAMEUNIONBYNAME._serialized_end = 40303 + _SPDATAFRAMEWHERE._serialized_start = 40305 + _SPDATAFRAMEWHERE._serialized_end = 40426 + _SPDATAFRAMEWITHCOLUMN._serialized_start = 40429 + _SPDATAFRAMEWITHCOLUMN._serialized_end = 40567 + _SPDATAFRAMEWITHCOLUMNS._serialized_start = 40570 + _SPDATAFRAMEWITHCOLUMNS._serialized_end = 40713 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 40716 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 40875 + _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 40878 + _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 41394 + _SPDATAFRAMEREADEROPTIONS._serialized_start = 41396 + _SPDATAFRAMEREADEROPTIONS._serialized_end = 41450 + _SPDATAFRAMEREADERSCHEMA._serialized_start = 41452 + _SPDATAFRAMEREADERSCHEMA._serialized_end = 41505 + _SPREADAVRO._serialized_start = 41507 + _SPREADAVRO._serialized_end = 41564 + _SPREADCSV._serialized_start = 41566 + _SPREADCSV._serialized_end = 41622 + _SPREADJSON._serialized_start = 41624 + _SPREADJSON._serialized_end = 41681 + _SPREADORC._serialized_start = 41683 + _SPREADORC._serialized_end = 41739 + _SPREADPARQUET._serialized_start = 41741 + _SPREADPARQUET._serialized_end = 41801 + _SPREADTABLE._serialized_start = 41803 + _SPREADTABLE._serialized_end = 41861 + _SPREADXML._serialized_start = 41863 + _SPREADXML._serialized_end = 41919 + _SPCOPYINTO._serialized_start = 41922 + _SPCOPYINTO._serialized_end = 42125 + _SPDATAFRAMEWRITER._serialized_start = 42128 + _SPDATAFRAMEWRITER._serialized_end = 42491 + _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 42493 + _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 42548 + _SPDATAFRAMEWRITEROPTIONS._serialized_start = 42550 + _SPDATAFRAMEWRITEROPTIONS._serialized_end = 42604 + _SPWRITECSV._serialized_start = 42606 + _SPWRITECSV._serialized_end = 42697 + _SPWRITEJSON._serialized_start = 42699 + _SPWRITEJSON._serialized_end = 42791 + _SPWRITEPARQUET._serialized_start = 42793 + _SPWRITEPARQUET._serialized_end = 42888 + _SPWRITETABLE._serialized_start = 42891 + _SPWRITETABLE._serialized_end = 43040 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start = 43042 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end = 43108 + _SPDATAFRAMESTATSCORR._serialized_start = 43110 + _SPDATAFRAMESTATSCORR._serialized_end = 43166 + _SPDATAFRAMESTATSCOV._serialized_start = 43168 + _SPDATAFRAMESTATSCOV._serialized_end = 43223 + _SPDATAFRAMESTATSCROSSTAB._serialized_start = 43225 + _SPDATAFRAMESTATSCROSSTAB._serialized_end = 43344 + _SPDATAFRAMESTATSSAMPLEBY._serialized_start = 43347 + _SPDATAFRAMESTATSSAMPLEBY._serialized_end = 43528 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 43531 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 45140 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 45143 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 45336 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 45339 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 45514 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 45517 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 45670 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 45673 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 45821 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 45824 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 45994 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 45996 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 46113 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 46116 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 46264 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 46267 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 46416 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 46419 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 46570 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 46573 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 46721 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 46724 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 46872 + _SPDATAFRAMETYPE._serialized_start = 46874 + _SPDATAFRAMETYPE._serialized_end = 46932 + _SPGROUPEDDATAFRAMETYPE._serialized_start = 46934 + _SPGROUPEDDATAFRAMETYPE._serialized_end = 47004 + _SPWINDOWTYPE._serialized_start = 47006 + _SPWINDOWTYPE._serialized_end = 47020 + _SPCOLEXPRTYPE._serialized_start = 47022 + _SPCOLEXPRTYPE._serialized_end = 47061 + _HASSRCPOSITION._serialized_start = 47064 + _HASSRCPOSITION._serialized_end = 56891 + _STMT._serialized_start = 56893 + _STMT._serialized_end = 56968 + _ASSIGN._serialized_start = 56970 + _ASSIGN._serialized_end = 57090 + _EVAL._serialized_start = 57092 + _EVAL._serialized_end = 57139 + _TYPE._serialized_start = 57142 + _TYPE._serialized_end = 58102 + _UNKNOWNTYPE._serialized_start = 58104 + _UNKNOWNTYPE._serialized_end = 58117 + _ANYTYPE._serialized_start = 58119 + _ANYTYPE._serialized_end = 58128 + _SCALARTYPE._serialized_start = 58131 + _SCALARTYPE._serialized_end = 58432 + _NUMERICTYPE._serialized_start = 58435 + _NUMERICTYPE._serialized_end = 58617 + _NUMBERTYPE._serialized_start = 58619 + _NUMBERTYPE._serialized_end = 58631 + _NOTHINGTYPE._serialized_start = 58633 + _NOTHINGTYPE._serialized_end = 58646 + _UNITTYPE._serialized_start = 58648 + _UNITTYPE._serialized_end = 58658 + _BOOLTYPE._serialized_start = 58660 + _BOOLTYPE._serialized_end = 58670 + _INT32TYPE._serialized_start = 58672 + _INT32TYPE._serialized_end = 58683 + _INT64TYPE._serialized_start = 58685 + _INT64TYPE._serialized_end = 58696 + _FLOAT64TYPE._serialized_start = 58698 + _FLOAT64TYPE._serialized_end = 58711 + _STRINGTYPE._serialized_start = 58713 + _STRINGTYPE._serialized_end = 58725 + _PDREPRTYPE._serialized_start = 58727 + _PDREPRTYPE._serialized_end = 58739 + _FNTYPE._serialized_start = 58741 + _FNTYPE._serialized_end = 58800 + _OPTIONTYPE._serialized_start = 58802 + _OPTIONTYPE._serialized_end = 58838 + _TUPLETYPE._serialized_start = 58840 + _TUPLETYPE._serialized_end = 58875 + _LISTTYPE._serialized_start = 58877 + _LISTTYPE._serialized_end = 58911 + _MAPTYPE._serialized_start = 58913 + _MAPTYPE._serialized_end = 58966 + _TYVAR._serialized_start = 58968 + _TYVAR._serialized_end = 58987 # @@protoc_insertion_point(module_scope) From 69f2f45288775ec3048b45b5c7d73c1956b6b293 Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Wed, 10 Jul 2024 14:12:39 -0700 Subject: [PATCH 07/10] Merge server-side-snowpark into current branch --- setup.py | 4 +- src/snowflake/snowpark/_internal/ast_utils.py | 195 ++- .../snowpark/_internal/proto/ast_pb2.py | 1156 ++++++++-------- .../_internal/proto/update-from-devvm.sh | 2 +- src/snowflake/snowpark/column.py | 643 +++++---- src/snowflake/snowpark/dataframe.py | 53 +- .../snowpark/dataframe_na_functions.py | 74 +- src/snowflake/snowpark/functions.py | 182 ++- src/snowflake/snowpark/session.py | 19 +- tests/ast/data/DataFrame.indexers.test | 19 + tests/ast/data/DataframeNaFunctions.test | 59 + tests/ast/data/col_alias.test | 6 +- tests/ast/data/filter.test | 10 - tests/ast/data/functions.test | 1192 +++++++++++++++++ tests/ast/data/session.sql.test | 15 + tests/ast/test_ast_driver.py | 5 + 16 files changed, 2648 insertions(+), 986 deletions(-) create mode 100644 tests/ast/data/DataFrame.indexers.test create mode 100644 tests/ast/data/DataframeNaFunctions.test delete mode 100644 tests/ast/data/filter.test create mode 100644 tests/ast/data/functions.test create mode 100644 tests/ast/data/session.sql.test diff --git a/setup.py b/setup.py index da8d9c0eca0..24b584dbf28 100644 --- a/setup.py +++ b/setup.py @@ -13,8 +13,8 @@ MODIN_DEPENDENCY_VERSION = ( "==0.28.1" # Snowpark pandas requires modin 0.28.1, which depends on pandas 2.2.1 ) -# Use HEAD of server-side-snowpark branch in connector. -CONNECTOR_DEPENDENCY = "snowflake-connector-python @ git+https://github.com/snowflakedb/snowflake-connector-python@server-side-snowpark#egg=snowflake-connector-python" +# Use HEAD of main branch in connector. +CONNECTOR_DEPENDENCY = "snowflake-connector-python @ git+https://github.com/snowflakedb/snowflake-connector-python@main#egg=snowflake-connector-python" INSTALL_REQ_LIST = [ "setuptools>=40.6.0", "wheel", diff --git a/src/snowflake/snowpark/_internal/ast_utils.py b/src/snowflake/snowpark/_internal/ast_utils.py index 617ae53aef4..685ad471342 100644 --- a/src/snowflake/snowpark/_internal/ast_utils.py +++ b/src/snowflake/snowpark/_internal/ast_utils.py @@ -9,9 +9,23 @@ import sys from functools import reduce from pathlib import Path -from typing import Any, Optional +from typing import Any, Dict, Optional, Tuple, Union +import snowflake.snowpark import snowflake.snowpark._internal.proto.ast_pb2 as proto +from snowflake.snowpark._internal.analyzer.expression import ( + Attribute, + CaseWhen, + Expression, + Literal, + MultipleExpression, + UnresolvedAttribute, +) +from snowflake.snowpark._internal.analyzer.unary_expression import Alias +from snowflake.snowpark._internal.type_utils import ( + VALID_PYTHON_TYPES_FOR_LITERAL_VALUE, + ColumnOrLiteral, +) # 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. @@ -133,6 +147,54 @@ def build_const_from_python_val(obj: Any, ast: proto.Expr) -> None: raise NotImplementedError("not supported type: %s" % type(obj)) +def build_fn_apply( + ast: proto.Expr, + builtin_name: str, + *args: Tuple[Union[proto.Expr, Any]], + **kwargs: Dict[str, Union[proto.Expr, Any]], +) -> None: + """ + Creates AST encoding for ApplyExpr(BuiltinFn(, List(), Map())) for builtin + functions. + Args: + ast: Expr node to fill + builtin_name: Name of the builtin function to call. + *args: Positional arguments to pass to function. + **kwargs: Keyword arguments to pass to function. + + """ + + expr = with_src_position(ast.apply_expr) + + fn = proto.BuiltinFn() + fn.name = builtin_name + set_src_position(fn.src) + expr.fn.builtin_fn.CopyFrom(fn) + + for arg in args: + if isinstance(arg, proto.Expr): + expr.pos_args.append(arg) + elif hasattr(arg, "_ast"): + assert arg._ast, f"Column object {arg} has no _ast member set." + expr.pos_args.append(arg._ast) + else: + pos_arg = proto.Expr() + build_const_from_python_val(arg, pos_arg) + expr.pos_args.append(pos_arg) + + for name, arg in kwargs.items(): + kwarg = proto.Tuple_String_Expr() + kwarg._1 = name + if isinstance(arg, proto.Expr): + kwarg._2.CopyFrom(arg) + elif isinstance(arg, snowflake.snowpark.Column): + assert arg._ast, f"Column object {name}={arg} has no _ast member set." + kwarg._2.CopyFrom(arg._ast) + else: + build_const_from_python_val(arg, kwarg._2) + expr.named_args.append(kwarg) + + def get_first_non_snowpark_stack_frame() -> inspect.FrameInfo: """Searches up through the call stack using inspect library to find the first stack frame of a caller within a file which does not lie within the Snowpark library itself. @@ -189,6 +251,137 @@ def set_src_position(ast: proto.SrcPosition) -> None: setattr_if_not_none(ast, "end_column", code_context.end_col_offset) +def with_src_position(expr_ast: proto.Expr) -> proto.Expr: + """Sets the src_position on the supplied Expr AST node and returns it.""" + set_src_position(expr_ast.src) + return expr_ast + + def setattr_if_not_none(obj: Any, attr: str, val: Any) -> None: if val is not None: setattr(obj, attr, val) + + +def _fill_ast_with_snowpark_column_or_literal( + ast: proto.Expr, value: ColumnOrLiteral +) -> None: + """Copy from a Column object's AST, or copy a literal value into an AST expression. + + Args: + ast (proto.SpColumnExpr): A previously created Expr() or SpColumnExpr() IR entity intance to be filled + value (ColumnOrLiteral): The value from which to populate the provided ast parameter. + + Raises: + TypeError: An SpColumnExpr can only be populated from another SpColumnExpr or a valid Literal type + """ + if isinstance(value, snowflake.snowpark.Column): + if value._ast is None and FAIL_ON_MISSING_AST: + raise NotImplementedError( + f"Column({value._expression})._ast is None due to the use of a Snowpark API which does not support AST logging yet." + ) + elif value._ast is not None: + ast.CopyFrom(value._ast) + elif isinstance(value, VALID_PYTHON_TYPES_FOR_LITERAL_VALUE): + build_const_from_python_val(value, ast) + elif isinstance(value, Expression): + # Expressions must be handled by caller. + pass + else: + raise TypeError(f"{type(value)} is not a valid type for Column or literal AST.") + + +def fill_ast_for_column( + expr: proto.Expr, name1: str, name2: Optional[str], fn_name="col" +) -> None: + """ + Fill in expr node to encode Snowpark Column created through col(...) / column(...). + Args: + expr: Ast node to fill in. + name1: When name2 is None, this corresponds col_name. Else, this is df_alias. + name2: When not None, this is col_name. + fn_name: alias to use when encoding Snowpark column (should be "col" or "column"). + + """ + + # Handle the special case * (as a SQL column expr). + if name2 == "*": + ast = with_src_position(expr.sp_column_sql_expr) + ast.sql = "*" + if name1 is not None: + ast.df_alias.value = name1 + return expr + + if name1 == "*" and name2 is None: + ast = with_src_position(expr.sp_column_sql_expr) + ast.sql = "*" + return expr + + # Regular form (without *): build as function ApplyExpr. + kwargs = ( + {"df_alias": name1, "col_name": name2} + if name2 is not None + else {"col_name": name1} + ) + + # To replicate Snowpark behavior (overloads do NOT seem to work at the moment) + # - use args. + args = tuple(kwargs.values()) + kwargs = {} + + build_fn_apply(expr, fn_name, *args, **kwargs) + + +def create_ast_for_column( + name1: str, name2: Optional[str], fn_name="col" +) -> proto.Expr: + """ + Helper function to create Ast for Snowpark Column. Cf. fill_ast_for_column on parameter details. + """ + ast = proto.Expr() + fill_ast_for_column(ast, name1, name2, fn_name) + return ast + + +def snowpark_expression_to_ast(expr: Expression) -> proto.Expr: + """ + Converts Snowpark expression expr to protobuf ast. + Args: + expr: A Snowpark expression (or instance of a derived class from Expression). + + Returns: + protobuf expression. + """ + if hasattr(expr, "_ast"): + return expr._ast + + if isinstance(expr, Alias): + # TODO: Not sure if this can come up in a real use case. We see this use case for internal calls, where + # we don't need an AST. + return None + elif isinstance(expr, Attribute): + return create_ast_for_column(expr.name, None) + elif isinstance(expr, Literal): + ast = proto.Expr() + build_const_from_python_val(expr.value, ast) + return ast + elif isinstance(expr, UnresolvedAttribute): + # Unresolved means treatment as sql expression. + ast = proto.Expr() + sql_expr_ast = with_src_position(ast.sp_column_sql_expr) + sql_expr_ast.sql = expr.sql + return ast + elif isinstance(expr, MultipleExpression): + # Convert to list of expressions. + ast = proto.Expr() + for child_expr in expr.expressions: + ast_list = ast.list_val.vs.add() + ast_list.CopyFrom(snowpark_expression_to_ast(child_expr)) + return ast + elif isinstance(expr, CaseWhen): + # TODO: Not sure if this can come up in a real use case. We see this use case for internal calls, where + # we don't need an AST. + return None + else: + raise NotImplementedError( + f"Snowpark expr {expr} of type {type(expr)} is an expression with missing AST or for which an AST can not be auto-generated." + ) diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index 6898b20e9e3..884afa1e408 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -3,7 +3,7 @@ # # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: Snowpark/proto/ast.proto +# source: proto/ast.proto """Generated protocol buffer code.""" from google.protobuf import ( descriptor as _descriptor, @@ -20,591 +20,585 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x18Snowpark/proto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto"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"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"S\n\x19Tuple_SpVariant_SpVariant\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"\xef\x04\n\rBuiltInFnExpr\x12(\n\x0ftrait_string_fn\x18\x01 \x01(\x0b\x32\r.ast.StringFnH\x00\x12,\n\x0estring_collate\x18\x02 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12*\n\rstring_concat\x18\x03 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12.\n\x0fstring_contains\x18\x04 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x05 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x06 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x07 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x08 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\t \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\n \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\x0b \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\x0c \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\r \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"Z\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\t.ast.Expr"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\x94\x04\n\x08StringFn\x12,\n\x0estring_collate\x18\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12.\n\x0fstring_contains\x18\x02 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12/\n\x10string_ends_with\x18\x03 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12$\n\nstring_len\x18\x04 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12&\n\x0bstring_like\x18\x05 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12*\n\rstring_regexp\x18\x06 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x35\n\x13string_regexp_count\x18\x07 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x33\n\x12string_starts_with\x18\x08 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12*\n\rstring_substr\x18\t \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12-\n\x0fstring_to_lower\x18\n \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12-\n\x0fstring_to_upper\x18\x0b \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x42\t\n\x07variant"B\n\tStringLen\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToUpper\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"F\n\rStringToLower\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr"d\n\x10StringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"b\n\x0eStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"u\n\x0cStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"c\n\x0eStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"_\n\nStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"a\n\x0cStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x99\x01\n\x11StringRegexpCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06params\x18\x05 \x03(\x0b\x32\t.ast.Expr"^\n\rStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03str\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x0e\x63ollation_spec\x18\x03 \x01(\t">\n\x0cStringConcat\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07strings\x18\x02 \x03(\t"\xb7L\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\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\x0ftrait_string_fn\x18\x0e \x01(\x0b\x32\r.ast.StringFnH\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\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x42 \x01(\x0b\x32\r.ast.SpColumnH\x00\x12-\n\x0fsp_column_alias\x18\x43 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x44 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x45 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x46 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18G \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18H \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18I \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18J \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18K \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18L \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18M \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18N \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18O \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18P \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18Q \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18R \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18S \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18T \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18U \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18V \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18W \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18X \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Y \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18Z \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18[ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\\ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18] \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18^ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18_ \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x61 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x63 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x65 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18g \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18j \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18k \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18l \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18m \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18n \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18o \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18p \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18r \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18s \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18t \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18v \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18w \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18x \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18y \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18{ \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18| \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18} \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x31\n\x11sp_dataframe_show\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x83\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x85\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x86\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x87\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x88\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x89\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8a\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8b\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8c\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8d\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8e\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x91\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x92\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x93\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x94\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x96\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x97\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x98\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x99\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9a\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9b\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9c\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9d\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9e\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa5\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa6\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa7\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa8\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xa9\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xaa\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xab\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xad\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xae\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xaf\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb0\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb1\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb2\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb3\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb5\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb6\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb7\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb8\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb9\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\xba\x02\n\x0cSpColumnExpr\x12"\n\tsp_column\x18\x01 \x01(\x0b\x32\r.ast.SpColumnH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"g\n\x08SpColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\xcf\x06\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\x32\n\x12sp_column_try_cast\x18\x0f \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x10 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9e\x1d\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x0f \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x10 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x11 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x12 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x13 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x14 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x15 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x16 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x17 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18\x18 \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x19 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1a \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1b \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18\x1c \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18\x1d \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1e \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18! \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18" \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18% \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18& \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\' \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18( \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18) \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18* \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18+ \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18, \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18- \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18. \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18/ \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18\x30 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18\x31 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x32 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x33 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x34 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x35 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x36 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x37 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x38 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x39 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18: \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18; \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18< \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18= \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"5\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"Y\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x81\x01\n\x11SpDataframeNaDrop\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\x84\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12.\n\tvalue_map\x18\x03 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant"\x9e\x01\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x33\n\x0breplacement\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_SpVariant_SpVariant"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xa1\x01\n\x10SpDataframeFirst\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\r\n\x05\x62lock\x18\x04 \x01(\x08\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc7\x01\n\x16SpDataframeRandomSplit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07weights\x18\x03 \x03(\x01\x12)\n\x04seed\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x01"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xe3L\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12\x34\n\x16trait_built_in_fn_expr\x18\x02 \x01(\x0b\x32\x12.ast.BuiltInFnExprH\x00\x12!\n\x0btrait_const\x18\x03 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x04 \x01(\x0b\x32\t.ast.ExprH\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\x0ftrait_string_fn\x18\x0f \x01(\x0b\x32\r.ast.StringFnH\x00\x12&\n\x0etrait_unary_op\x18\x10 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x11 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x12 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x13 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x14 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x15 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x16 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x17 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x18 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x19 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1a \x01(\x0b\x32\x0c.ast.BoolValH\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\x1a\n\x05py_fn\x18\x39 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18@ \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18\x41 \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12"\n\tsp_column\x18\x43 \x01(\x0b\x32\r.ast.SpColumnH\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+\n\x0esp_column_cast\x18I \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18J \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18K \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18L \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18M \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18N \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18O \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18P \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18Q \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18R \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18S \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18T \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x32\n\x12sp_column_try_cast\x18U \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18V \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18W \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18X \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Y \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18Z \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18[ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\\ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18] \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18^ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18_ \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18` \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x62 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x64 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x65 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x66 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18g \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18h \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18j \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18k \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18l \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18m \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18n \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18o \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18p \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x36\n\x14sp_dataframe_na_drop\x18q \x01(\x0b\x32\x16.ast.SpDataframeNaDropH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18r \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18s \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18t \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18v \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18w \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18x \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18y \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18| \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18} \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x83\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x85\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x86\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x87\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8c\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x8d\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x8e\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8f\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x92\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x93\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x94\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x95\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x97\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x98\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x99\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9a\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9b\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9c\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9e\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9f\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa2\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa3\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa4\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa5\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa6\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa7\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa8\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa9\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12-\n\x0estring_collate\x18\xaa\x01 \x01(\x0b\x32\x12.ast.StringCollateH\x00\x12+\n\rstring_concat\x18\xab\x01 \x01(\x0b\x32\x11.ast.StringConcatH\x00\x12/\n\x0fstring_contains\x18\xac\x01 \x01(\x0b\x32\x13.ast.StringContainsH\x00\x12\x30\n\x10string_ends_with\x18\xad\x01 \x01(\x0b\x32\x13.ast.StringEndsWithH\x00\x12%\n\nstring_len\x18\xae\x01 \x01(\x0b\x32\x0e.ast.StringLenH\x00\x12\'\n\x0bstring_like\x18\xaf\x01 \x01(\x0b\x32\x0f.ast.StringLikeH\x00\x12+\n\rstring_regexp\x18\xb0\x01 \x01(\x0b\x32\x11.ast.StringRegexpH\x00\x12\x36\n\x13string_regexp_count\x18\xb1\x01 \x01(\x0b\x32\x16.ast.StringRegexpCountH\x00\x12\x34\n\x12string_starts_with\x18\xb2\x01 \x01(\x0b\x32\x15.ast.StringStartsWithH\x00\x12+\n\rstring_substr\x18\xb3\x01 \x01(\x0b\x32\x11.ast.StringSubstrH\x00\x12.\n\x0fstring_to_lower\x18\xb4\x01 \x01(\x0b\x32\x12.ast.StringToLowerH\x00\x12.\n\x0fstring_to_upper\x18\xb5\x01 \x01(\x0b\x32\x12.ast.StringToUpperH\x00\x12%\n\nstring_val\x18\xb6\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb7\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb8\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb9\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xba\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' + b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.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"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\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"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"8\n\tBuiltinFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"\x8a\x01\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12*\n\nnamed_args\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xc5J\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\x31\n\x14trait_sp_column_expr\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x04 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x05 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x07 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x08 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\t \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\n \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0b \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0c \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12&\n\x0etrait_unary_op\x18\r \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0e \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x0f \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x10 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x11 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x12 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x13 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x14 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x15 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x16 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x17 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x18 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x19 \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1a \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1b \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1c \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1d \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1e \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18\x1f \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. \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18/ \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x30 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x31 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x32 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x33 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x34 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x35 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x36 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x37 \x01(\x0b\x32\t.ast.PyFnH\x00\x12-\n\x0fpython_date_val\x18\x38 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x39 \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\x0fsnowflake_sproc\x18> \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18? \x01(\x0b\x32\x11.ast.SnowflakeUdfH\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+\n\x0esp_column_cast\x18\x46 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18G \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18H \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18I \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18J \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18K \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18L \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18M \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18N \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18O \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18P \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18Q \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18R \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18S \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18T \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18U \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18V \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18W \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18X \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18Y \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18Z \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_apply\x18^ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18_ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18` \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x61 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x62 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x63 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x64 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x65 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x66 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18g \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18h \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18i \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18j \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18k \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18l \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18m \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18n \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18o \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18p \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18q \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18r \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18s \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18t \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18u \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18v \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18w \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18x \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18y \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18z \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\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\x46\n\x1csp_dataframe_rollup__columns\x18} \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x7f \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12\x41\n\x19sp_dataframe_sample__long\x18\x80\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x81\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12G\n\x1csp_dataframe_select__strings\x18\x82\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x83\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x85\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x86\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x87\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x88\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x89\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x8a\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x8c\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8d\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8e\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8f\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x90\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x91\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x92\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x93\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x94\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x95\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x97\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x98\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x99\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x9a\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x9b\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x9c\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9e\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9f\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xa1\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xa2\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa3\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa4\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa5\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa6\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa7\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa8\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa9\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xaa\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xab\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xac\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12%\n\nstring_val\x18\xad\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xae\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xaf\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb0\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb1\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\x96\x02\n\x0cSpColumnExpr\x12\x36\n\x14sp_column_equal_null\x18\x01 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x02 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x03 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x04 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x05 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"g\n\x12SpColumnStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"i\n\x14SpColumnStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"l\n\x18SpColumnStringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"j\n\x16SpColumnStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"q\n\x15SpColumnStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x03 \x01(\x0b\x32\t.ast.Expr"k\n\x16SpColumnStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\xfb\x1c\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x0f \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x10 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x11 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x12 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x13 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x14 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x15 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x17 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x18 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x19 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1a \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1b \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12/\n\x10sp_dataframe_ref\x18\x1c \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1d \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1e \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18\x1f \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18! \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18$ \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18% \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18& \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18\' \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18( \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18) \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18* \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18+ \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18, \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18- \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18. \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18/ \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18\x30 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x31 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x32 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x33 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x34 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x35 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x36 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x37 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x38 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18\x39 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18: \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18; \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18< \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t\x12\x19\n\x06params\x18\x03 \x03(\x0b\x32\t.ast.Expr"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x7f\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t\x12$\n\x07variant\x18\x05 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x03 \x01(\t\x12+\n\x06thresh\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String"\xb9\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x04 \x01(\x0b\x32\x14.ast.Map_String_Expr\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String"\xae\x02\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x03 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\'\n\x0fto_replace_list\x18\x04 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x06 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12 \n\x06subset\x18\x08 \x01(\x0b\x32\x10.ast.List_String"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x04"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xf1J\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\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\x0etrait_unary_op\x18\x0e \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0f \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x10 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x11 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x12 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x13 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x14 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x15 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x16 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x17 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x18 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x19 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18\x42 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x43 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x44 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x45 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x46 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\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_apply\x18_ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18` \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x61 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x62 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x63 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x65 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x66 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18g \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18h \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18i \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18j \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18k \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18l \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18m \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18n \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18o \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18p \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18q \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18r \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18s \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18t \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18u \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18v \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18w \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18x \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18y \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18z \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18{ \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\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\x46\n\x1csp_dataframe_rollup__columns\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x45\n\x1bsp_dataframe_sample__double\x18\x80\x01 \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12\x41\n\x19sp_dataframe_sample__long\x18\x81\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x82\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12G\n\x1csp_dataframe_select__strings\x18\x83\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x85\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x86\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x87\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x88\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x8a\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x8b\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x8c\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x8d\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8e\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8f\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x90\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x91\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x92\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x93\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x94\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x96\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x97\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x98\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x99\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x9a\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x9b\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x9c\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x9d\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9e\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9f\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xa0\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xa1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xa2\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xa3\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa4\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa5\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa6\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa7\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa8\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa9\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xaa\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xab\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xac\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xad\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12%\n\nstring_val\x18\xae\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xaf\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb0\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb1\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb2\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' ) _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "Snowpark.proto.ast_pb2", globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "proto.ast_pb2", globals()) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b"\n\034com.snowflake.snowpark.proto" - _LIST_SPCOLUMNEXPR._serialized_start = 65 - _LIST_SPCOLUMNEXPR._serialized_end = 117 - _LIST_STRING._serialized_start = 119 - _LIST_STRING._serialized_end = 146 - _MAP_STRING_SPVARIANT._serialized_start = 148 - _MAP_STRING_SPVARIANT._serialized_end = 213 - _MAP_STRING_STRING._serialized_start = 215 - _MAP_STRING_STRING._serialized_end = 274 - _TUPLE_SPVARIANT_SPVARIANT._serialized_start = 276 - _TUPLE_SPVARIANT_SPVARIANT._serialized_end = 359 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start = 361 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end = 458 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 460 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 530 - _TUPLE_STRING_SPVARIANT._serialized_start = 532 - _TUPLE_STRING_SPVARIANT._serialized_end = 596 - _TUPLE_STRING_STRING._serialized_start = 598 - _TUPLE_STRING_STRING._serialized_end = 643 - _LANGUAGE._serialized_start = 646 - _LANGUAGE._serialized_end = 810 - _PYTHONLANGUAGE._serialized_start = 812 - _PYTHONLANGUAGE._serialized_end = 859 - _SCALALANGUAGE._serialized_start = 861 - _SCALALANGUAGE._serialized_end = 907 - _JAVALANGUAGE._serialized_start = 909 - _JAVALANGUAGE._serialized_end = 954 - _VERSION._serialized_start = 956 - _VERSION._serialized_end = 1025 - _PYTHONTIMEZONE._serialized_start = 1027 - _PYTHONTIMEZONE._serialized_end = 1111 - _PDINDEXEXPR._serialized_start = 1113 - _PDINDEXEXPR._serialized_end = 1226 - _ORD._serialized_start = 1228 - _ORD._serialized_end = 1255 - _FLEXORD._serialized_start = 1257 - _FLEXORD._serialized_end = 1288 - _KEY._serialized_start = 1290 - _KEY._serialized_end = 1317 - _PDPROJECTINDEXEXPR._serialized_start = 1320 - _PDPROJECTINDEXEXPR._serialized_end = 1633 - _ORDRANGE._serialized_start = 1635 - _ORDRANGE._serialized_end = 1721 - _FLEXORDRANGE._serialized_start = 1723 - _FLEXORDRANGE._serialized_end = 1813 - _KEYRANGE._serialized_start = 1815 - _KEYRANGE._serialized_end = 1876 - _ORDLIST._serialized_start = 1878 - _ORDLIST._serialized_end = 1912 - _FLEXORDLIST._serialized_start = 1914 - _FLEXORDLIST._serialized_end = 1952 - _KEYLIST._serialized_start = 1954 - _KEYLIST._serialized_end = 1988 - _BOOLFILTERLIST._serialized_start = 1990 - _BOOLFILTERLIST._serialized_end = 2033 - _SPFLATTENMODE._serialized_start = 2035 - _SPFLATTENMODE._serialized_end = 2160 - _SPGROUPINGSETS._serialized_start = 2162 - _SPGROUPINGSETS._serialized_end = 2216 - _SPSAVEMODE._serialized_start = 2219 - _SPSAVEMODE._serialized_end = 2378 - _SPJOINTYPE._serialized_start = 2381 - _SPJOINTYPE._serialized_end = 2675 - _SPWINDOWSPECEXPR._serialized_start = 2678 - _SPWINDOWSPECEXPR._serialized_end = 3139 - _SPWINDOWSPECORDERBY._serialized_start = 3141 - _SPWINDOWSPECORDERBY._serialized_end = 3231 - _SPWINDOWSPECPARTITIONBY._serialized_start = 3233 - _SPWINDOWSPECPARTITIONBY._serialized_end = 3327 - _SPWINDOWSPECRANGEBETWEEN._serialized_start = 3329 - _SPWINDOWSPECRANGEBETWEEN._serialized_end = 3419 - _SPWINDOWSPECROWSBETWEEN._serialized_start = 3421 - _SPWINDOWSPECROWSBETWEEN._serialized_end = 3510 - _SPTIMESTAMPTIMEZONE._serialized_start = 3513 - _SPTIMESTAMPTIMEZONE._serialized_end = 3700 - _SPDATATYPE._serialized_start = 3703 - _SPDATATYPE._serialized_end = 4505 - _SPARRAYTYPE._serialized_start = 4507 - _SPARRAYTYPE._serialized_end = 4569 - _SPCOLUMNIDENTIFIER._serialized_start = 4571 - _SPCOLUMNIDENTIFIER._serialized_end = 4605 - _SPDECIMALTYPE._serialized_start = 4607 - _SPDECIMALTYPE._serialized_end = 4656 - _SPMAPTYPE._serialized_start = 4658 - _SPMAPTYPE._serialized_end = 4757 - _SPSTRINGTYPE._serialized_start = 4759 - _SPSTRINGTYPE._serialized_end = 4818 - _SPSTRUCTFIELD._serialized_start = 4820 - _SPSTRUCTFIELD._serialized_end = 4941 - _SPSTRUCTTYPE._serialized_start = 4943 - _SPSTRUCTTYPE._serialized_end = 5013 - _SPTIMESTAMPTYPE._serialized_start = 5015 - _SPTIMESTAMPTYPE._serialized_end = 5077 - _SPVECTORTYPE._serialized_start = 5079 - _SPVECTORTYPE._serialized_end = 5141 - _SPVARIANT._serialized_start = 5144 - _SPVARIANT._serialized_end = 5850 - _SPVARIANT_OBJECT._serialized_start = 5852 - _SPVARIANT_OBJECT._serialized_end = 5907 - _SPVARIANT_LIST._serialized_start = 5909 - _SPVARIANT_LIST._serialized_end = 5960 - _SPVARIANT_TIMESTAMP._serialized_start = 5962 - _SPVARIANT_TIMESTAMP._serialized_end = 5994 - _SPVARIANT_DATE._serialized_start = 5996 - _SPVARIANT_DATE._serialized_end = 6023 - _SPVARIANT_TIME._serialized_start = 6025 - _SPVARIANT_TIME._serialized_end = 6052 - _SPVARIANT_BYTES._serialized_start = 6054 - _SPVARIANT_BYTES._serialized_end = 6082 - _SPVARIANT_STRING._serialized_start = 6084 - _SPVARIANT_STRING._serialized_end = 6113 - _SPVARIANT_BOOL._serialized_start = 6115 - _SPVARIANT_BOOL._serialized_end = 6142 - _SPVARIANT_BIGINT._serialized_start = 6144 - _SPVARIANT_BIGINT._serialized_end = 6173 - _SPVARIANT_BIGDECIMAL._serialized_start = 6175 - _SPVARIANT_BIGDECIMAL._serialized_end = 6208 - _SPVARIANT_INT._serialized_start = 6210 - _SPVARIANT_INT._serialized_end = 6236 - _SPVARIANT_FLOAT._serialized_start = 6238 - _SPVARIANT_FLOAT._serialized_end = 6266 - _SPVARIANT_DOUBLE._serialized_start = 6268 - _SPVARIANT_DOUBLE._serialized_end = 6297 - _SPROW._serialized_start = 6299 - _SPROW._serialized_end = 6334 - _SRCPOSITION._serialized_start = 6336 - _SRCPOSITION._serialized_end = 6443 - _VARID._serialized_start = 6445 - _VARID._serialized_end = 6471 - _REQUEST._serialized_start = 6473 - _REQUEST._serialized_end = 6585 - _RESPONSE._serialized_start = 6587 - _RESPONSE._serialized_end = 6624 - _CONST._serialized_start = 6627 - _CONST._serialized_end = 7314 - _NONEVAL._serialized_start = 7316 - _NONEVAL._serialized_end = 7356 - _NULLVAL._serialized_start = 7358 - _NULLVAL._serialized_end = 7398 - _BOOLVAL._serialized_start = 7400 - _BOOLVAL._serialized_end = 7451 - _INT32VAL._serialized_start = 7453 - _INT32VAL._serialized_end = 7505 - _INT64VAL._serialized_start = 7507 - _INT64VAL._serialized_end = 7559 - _FLOAT64VAL._serialized_start = 7561 - _FLOAT64VAL._serialized_end = 7615 - _BIGINTVAL._serialized_start = 7617 - _BIGINTVAL._serialized_end = 7670 - _BIGDECIMALVAL._serialized_start = 7672 - _BIGDECIMALVAL._serialized_end = 7757 - _STRINGVAL._serialized_start = 7759 - _STRINGVAL._serialized_end = 7812 - _BINARYVAL._serialized_start = 7814 - _BINARYVAL._serialized_end = 7867 - _TIMESTAMPVAL._serialized_start = 7869 - _TIMESTAMPVAL._serialized_end = 7925 - _DATEVAL._serialized_start = 7927 - _DATEVAL._serialized_end = 7978 - _TIMEVAL._serialized_start = 7980 - _TIMEVAL._serialized_end = 8031 - _PYTHONTIMESTAMPVAL._serialized_start = 8034 - _PYTHONTIMESTAMPVAL._serialized_end = 8227 - _PYTHONDATEVAL._serialized_start = 8229 - _PYTHONDATEVAL._serialized_end = 8317 - _PYTHONTIMEVAL._serialized_start = 8320 - _PYTHONTIMEVAL._serialized_end = 8466 - _FNVAL._serialized_start = 8468 - _FNVAL._serialized_end = 8547 - _IFEXPR._serialized_start = 8549 - _IFEXPR._serialized_end = 8670 - _SOMEVAL._serialized_start = 8672 - _SOMEVAL._serialized_end = 8734 - _TUPLEVAL._serialized_start = 8736 - _TUPLEVAL._serialized_end = 8800 - _LISTVAL._serialized_start = 8802 - _LISTVAL._serialized_end = 8865 - _SEQMAPVAL._serialized_start = 8867 - _SEQMAPVAL._serialized_end = 8937 - _BUILTINFNEXPR._serialized_start = 8940 - _BUILTINFNEXPR._serialized_end = 9563 - _APPLYEXPR._serialized_start = 9565 - _APPLYEXPR._serialized_end = 9655 - _PYFN._serialized_start = 9657 - _PYFN._serialized_end = 9737 - _SNOWFLAKEUDF._serialized_start = 9739 - _SNOWFLAKEUDF._serialized_end = 9814 - _SNOWFLAKESPROC._serialized_start = 9816 - _SNOWFLAKESPROC._serialized_end = 9893 - _UNARYOP._serialized_start = 9895 - _UNARYOP._serialized_end = 9965 - _BINOP._serialized_start = 9968 - _BINOP._serialized_end = 10422 - _NOT._serialized_start = 10424 - _NOT._serialized_end = 10488 - _AND._serialized_start = 10490 - _AND._serialized_end = 10574 - _OR._serialized_start = 10576 - _OR._serialized_end = 10659 - _EQ._serialized_start = 10661 - _EQ._serialized_end = 10744 - _NEQ._serialized_start = 10746 - _NEQ._serialized_end = 10830 - _LT._serialized_start = 10832 - _LT._serialized_end = 10915 - _LEQ._serialized_start = 10917 - _LEQ._serialized_end = 11001 - _GT._serialized_start = 11003 - _GT._serialized_end = 11086 - _GEQ._serialized_start = 11088 - _GEQ._serialized_end = 11172 - _NEG._serialized_start = 11174 - _NEG._serialized_end = 11238 - _ADD._serialized_start = 11240 - _ADD._serialized_end = 11324 - _SUB._serialized_start = 11326 - _SUB._serialized_end = 11410 - _MUL._serialized_start = 11412 - _MUL._serialized_end = 11496 - _DIV._serialized_start = 11498 - _DIV._serialized_end = 11582 - _MOD._serialized_start = 11584 - _MOD._serialized_end = 11668 - _POW._serialized_start = 11670 - _POW._serialized_end = 11754 - _BITAND._serialized_start = 11756 - _BITAND._serialized_end = 11843 - _BITOR._serialized_start = 11845 - _BITOR._serialized_end = 11931 - _BITXOR._serialized_start = 11933 - _BITXOR._serialized_end = 12020 - _RANGEVAL._serialized_start = 12022 - _RANGEVAL._serialized_end = 12139 - _STRINGFN._serialized_start = 12142 - _STRINGFN._serialized_end = 12674 - _STRINGLEN._serialized_start = 12676 - _STRINGLEN._serialized_end = 12742 - _STRINGTOUPPER._serialized_start = 12744 - _STRINGTOUPPER._serialized_end = 12814 - _STRINGTOLOWER._serialized_start = 12816 - _STRINGTOLOWER._serialized_end = 12886 - _STRINGSTARTSWITH._serialized_start = 12888 - _STRINGSTARTSWITH._serialized_end = 12988 - _STRINGENDSWITH._serialized_start = 12990 - _STRINGENDSWITH._serialized_end = 13088 - _STRINGSUBSTR._serialized_start = 13090 - _STRINGSUBSTR._serialized_end = 13207 - _STRINGCONTAINS._serialized_start = 13209 - _STRINGCONTAINS._serialized_end = 13308 - _STRINGLIKE._serialized_start = 13310 - _STRINGLIKE._serialized_end = 13405 - _STRINGREGEXP._serialized_start = 13407 - _STRINGREGEXP._serialized_end = 13504 - _STRINGREGEXPCOUNT._serialized_start = 13507 - _STRINGREGEXPCOUNT._serialized_end = 13660 - _STRINGCOLLATE._serialized_start = 13662 - _STRINGCOLLATE._serialized_end = 13756 - _STRINGCONCAT._serialized_start = 13758 - _STRINGCONCAT._serialized_end = 13820 - _EXPR._serialized_start = 13823 - _EXPR._serialized_end = 23606 - _REF._serialized_start = 23608 - _REF._serialized_end = 23672 - _CASTEXPR._serialized_start = 23674 - _CASTEXPR._serialized_end = 23761 - _PDDATAFRAME._serialized_start = 23764 - _PDDATAFRAME._serialized_end = 23913 - _PDDROPNA._serialized_start = 23916 - _PDDROPNA._serialized_end = 24058 - _PDDATAFRAMEGETITEM._serialized_start = 24060 - _PDDATAFRAMEGETITEM._serialized_end = 24161 - _PDDATAFRAMESETITEM._serialized_start = 24163 - _PDDATAFRAMESETITEM._serialized_end = 24286 - _PDDATAFRAMELOC._serialized_start = 24288 - _PDDATAFRAMELOC._serialized_end = 24410 - _PDDATAFRAMEILOC._serialized_start = 24412 - _PDDATAFRAMEILOC._serialized_end = 24535 - _PDREPR._serialized_start = 24537 - _PDREPR._serialized_end = 24651 - _PDREPRRESULT._serialized_start = 24653 - _PDREPRRESULT._serialized_end = 24770 - _RESULT._serialized_start = 24773 - _RESULT._serialized_end = 24931 - _EVALRESULT._serialized_start = 24934 - _EVALRESULT._serialized_end = 25706 - _EVALOK._serialized_start = 25708 - _EVALOK._serialized_end = 25788 - _ERROR._serialized_start = 25790 - _ERROR._serialized_end = 25880 - _SESSIONRESETREQUIREDERROR._serialized_start = 25882 - _SESSIONRESETREQUIREDERROR._serialized_end = 25950 - _SPCOLUMNEXPR._serialized_start = 25953 - _SPCOLUMNEXPR._serialized_end = 26267 - _SPCOLUMNREF._serialized_start = 26269 - _SPCOLUMNREF._serialized_end = 26325 - _SPCOLUMN._serialized_start = 26327 - _SPCOLUMN._serialized_end = 26430 - _SPCOLUMNSQLEXPR._serialized_start = 26432 - _SPCOLUMNSQLEXPR._serialized_end = 26541 - _SPCOLUMNFN._serialized_start = 26544 - _SPCOLUMNFN._serialized_end = 27391 - _SPCOLUMNALIAS._serialized_start = 27394 - _SPCOLUMNALIAS._serialized_end = 27529 - _SPCOLUMNAPPLY_INT._serialized_start = 27531 - _SPCOLUMNAPPLY_INT._serialized_end = 27618 - _SPCOLUMNAPPLY_STRING._serialized_start = 27620 - _SPCOLUMNAPPLY_STRING._serialized_end = 27712 - _SPCOLUMNASC._serialized_start = 27714 - _SPCOLUMNASC._serialized_end = 27831 - _SPCOLUMNBETWEEN._serialized_start = 27834 - _SPCOLUMNBETWEEN._serialized_end = 27970 - _SPCOLUMNCAST._serialized_start = 27972 - _SPCOLUMNCAST._serialized_end = 28070 - _SPCOLUMNTRYCAST._serialized_start = 28072 - _SPCOLUMNTRYCAST._serialized_end = 28173 - _SPCOLUMNDESC._serialized_start = 28175 - _SPCOLUMNDESC._serialized_end = 28293 - _SPCOLUMNEQUALNAN._serialized_start = 28295 - _SPCOLUMNEQUALNAN._serialized_end = 28368 - _SPCOLUMNEQUALNULL._serialized_start = 28370 - _SPCOLUMNEQUALNULL._serialized_end = 28468 - _SPCOLUMNIN_DATAFRAME._serialized_start = 28470 - _SPCOLUMNIN_DATAFRAME._serialized_end = 28581 - _SPCOLUMNIN_SEQ._serialized_start = 28583 - _SPCOLUMNIN_SEQ._serialized_end = 28681 - _SPCOLUMNISNOTNULL._serialized_start = 28683 - _SPCOLUMNISNOTNULL._serialized_end = 28757 - _SPCOLUMNISNULL._serialized_start = 28759 - _SPCOLUMNISNULL._serialized_end = 28830 - _SPCOLUMNNAME._serialized_start = 28832 - _SPCOLUMNNAME._serialized_end = 28916 - _SPCOLUMNOVER._serialized_start = 28918 - _SPCOLUMNOVER._serialized_end = 29031 - _SPCOLUMNWITHINGROUP._serialized_start = 29033 - _SPCOLUMNWITHINGROUP._serialized_end = 29152 - _SPDATAFRAMEEXPR._serialized_start = 29155 - _SPDATAFRAMEEXPR._serialized_end = 32897 - _SPDATAFRAMEREF._serialized_start = 32899 - _SPDATAFRAMEREF._serialized_end = 32970 - _SPDATAFRAMESHOW._serialized_start = 32972 - _SPDATAFRAMESHOW._serialized_end = 33044 - _SPCREATEDATAFRAME._serialized_start = 33047 - _SPCREATEDATAFRAME._serialized_end = 33176 - _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 33179 - _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 33368 - _SPFLATTEN_COLUMN._serialized_start = 33370 - _SPFLATTEN_COLUMN._serialized_end = 33453 - _SPGENERATOR._serialized_start = 33455 - _SPGENERATOR._serialized_end = 33572 - _SPRANGE._serialized_start = 33575 - _SPRANGE._serialized_end = 33715 - _SPSQL._serialized_start = 33717 - _SPSQL._serialized_end = 33770 - _SPSTOREDPROCEDURE._serialized_start = 33772 - _SPSTOREDPROCEDURE._serialized_end = 33887 - _SPTABLE._serialized_start = 33889 - _SPTABLE._serialized_end = 33978 - _SPTABLEFUNCTION._serialized_start = 33980 - _SPTABLEFUNCTION._serialized_end = 34104 - _SPDATAFRAMETODF._serialized_start = 34106 - _SPDATAFRAMETODF._serialized_end = 34225 - _SPDATAFRAMENADROP._serialized_start = 34228 - _SPDATAFRAMENADROP._serialized_end = 34357 - _SPDATAFRAMENAFILL._serialized_start = 34360 - _SPDATAFRAMENAFILL._serialized_end = 34492 - _SPDATAFRAMENAREPLACE._serialized_start = 34495 - _SPDATAFRAMENAREPLACE._serialized_end = 34653 - _SPDATAFRAMEAGG._serialized_start = 34656 - _SPDATAFRAMEAGG._serialized_end = 34789 - _SPDATAFRAMEAPPLY._serialized_start = 34791 - _SPDATAFRAMEAPPLY._serialized_end = 34892 - _SPDATAFRAMECOL._serialized_start = 34894 - _SPDATAFRAMECOL._serialized_end = 34993 - _SPDATAFRAMECROSSJOIN._serialized_start = 34995 - _SPDATAFRAMECROSSJOIN._serialized_end = 35118 - _SPDATAFRAMECUBE._serialized_start = 35121 - _SPDATAFRAMECUBE._serialized_end = 35254 - _SPDATAFRAMEDISTINCT._serialized_start = 35256 - _SPDATAFRAMEDISTINCT._serialized_end = 35342 - _SPDATAFRAMEDROP_COLUMNS._serialized_start = 35345 - _SPDATAFRAMEDROP_COLUMNS._serialized_end = 35486 - _SPDATAFRAMEDROP_STRINGS._serialized_start = 35488 - _SPDATAFRAMEDROP_STRINGS._serialized_end = 35610 - _SPDATAFRAMEDROPDUPLICATES._serialized_start = 35612 - _SPDATAFRAMEDROPDUPLICATES._serialized_end = 35718 - _SPDATAFRAMEEXCEPT._serialized_start = 35720 - _SPDATAFRAMEEXCEPT._serialized_end = 35841 - _SPDATAFRAMEFILTER._serialized_start = 35843 - _SPDATAFRAMEFILTER._serialized_end = 35965 - _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 35968 - _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 36200 - _SPDATAFRAMEFLATTEN_COLUMN._serialized_start = 36202 - _SPDATAFRAMEFLATTEN_COLUMN._serialized_end = 36328 - _SPDATAFRAMEFIRST._serialized_start = 36331 - _SPDATAFRAMEFIRST._serialized_end = 36492 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 36495 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 36639 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 36641 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 36766 - _SPDATAFRAMEGROUPBY._serialized_start = 36768 - _SPDATAFRAMEGROUPBY._serialized_end = 36853 - _SPDATAFRAMEINTERSECT._serialized_start = 36855 - _SPDATAFRAMEINTERSECT._serialized_end = 36979 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 36982 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 37252 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 37255 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 37531 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 37534 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 37750 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 37753 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 37989 - _SPDATAFRAMELIMIT._serialized_start = 37991 - _SPDATAFRAMELIMIT._serialized_end = 38085 - _SPDATAFRAMENATURALJOIN._serialized_start = 38088 - _SPDATAFRAMENATURALJOIN._serialized_end = 38249 - _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 38252 - _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 38415 - _SPDATAFRAMEPIVOT_STRING._serialized_start = 38418 - _SPDATAFRAMEPIVOT_STRING._serialized_end = 38562 - _SPDATAFRAMERANDOMSPLIT._serialized_start = 38565 - _SPDATAFRAMERANDOMSPLIT._serialized_end = 38764 - _SPDATAFRAMERENAME._serialized_start = 38767 - _SPDATAFRAMERENAME._serialized_end = 38901 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 38904 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 39047 - _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 39049 - _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 39173 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_start = 39175 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_end = 39296 - _SPDATAFRAMESAMPLE_LONG._serialized_start = 39298 - _SPDATAFRAMESAMPLE_LONG._serialized_end = 39400 - _SPDATAFRAMESELECT_COLUMNS._serialized_start = 39403 - _SPDATAFRAMESELECT_COLUMNS._serialized_end = 39538 - _SPDATAFRAMESELECT_STRINGS._serialized_start = 39540 - _SPDATAFRAMESELECT_STRINGS._serialized_end = 39664 - _SPDATAFRAMESORT._serialized_start = 39667 - _SPDATAFRAMESORT._serialized_end = 39800 - _SPDATAFRAMEUNION._serialized_start = 39802 - _SPDATAFRAMEUNION._serialized_end = 39921 - _SPDATAFRAMEUNIONALL._serialized_start = 39923 - _SPDATAFRAMEUNIONALL._serialized_end = 40045 - _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 40048 - _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 40176 - _SPDATAFRAMEUNIONBYNAME._serialized_start = 40178 - _SPDATAFRAMEUNIONBYNAME._serialized_end = 40303 - _SPDATAFRAMEWHERE._serialized_start = 40305 - _SPDATAFRAMEWHERE._serialized_end = 40426 - _SPDATAFRAMEWITHCOLUMN._serialized_start = 40429 - _SPDATAFRAMEWITHCOLUMN._serialized_end = 40567 - _SPDATAFRAMEWITHCOLUMNS._serialized_start = 40570 - _SPDATAFRAMEWITHCOLUMNS._serialized_end = 40713 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 40716 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 40875 - _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 40878 - _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 41394 - _SPDATAFRAMEREADEROPTIONS._serialized_start = 41396 - _SPDATAFRAMEREADEROPTIONS._serialized_end = 41450 - _SPDATAFRAMEREADERSCHEMA._serialized_start = 41452 - _SPDATAFRAMEREADERSCHEMA._serialized_end = 41505 - _SPREADAVRO._serialized_start = 41507 - _SPREADAVRO._serialized_end = 41564 - _SPREADCSV._serialized_start = 41566 - _SPREADCSV._serialized_end = 41622 - _SPREADJSON._serialized_start = 41624 - _SPREADJSON._serialized_end = 41681 - _SPREADORC._serialized_start = 41683 - _SPREADORC._serialized_end = 41739 - _SPREADPARQUET._serialized_start = 41741 - _SPREADPARQUET._serialized_end = 41801 - _SPREADTABLE._serialized_start = 41803 - _SPREADTABLE._serialized_end = 41861 - _SPREADXML._serialized_start = 41863 - _SPREADXML._serialized_end = 41919 - _SPCOPYINTO._serialized_start = 41922 - _SPCOPYINTO._serialized_end = 42125 - _SPDATAFRAMEWRITER._serialized_start = 42128 - _SPDATAFRAMEWRITER._serialized_end = 42491 - _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 42493 - _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 42548 - _SPDATAFRAMEWRITEROPTIONS._serialized_start = 42550 - _SPDATAFRAMEWRITEROPTIONS._serialized_end = 42604 - _SPWRITECSV._serialized_start = 42606 - _SPWRITECSV._serialized_end = 42697 - _SPWRITEJSON._serialized_start = 42699 - _SPWRITEJSON._serialized_end = 42791 - _SPWRITEPARQUET._serialized_start = 42793 - _SPWRITEPARQUET._serialized_end = 42888 - _SPWRITETABLE._serialized_start = 42891 - _SPWRITETABLE._serialized_end = 43040 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start = 43042 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end = 43108 - _SPDATAFRAMESTATSCORR._serialized_start = 43110 - _SPDATAFRAMESTATSCORR._serialized_end = 43166 - _SPDATAFRAMESTATSCOV._serialized_start = 43168 - _SPDATAFRAMESTATSCOV._serialized_end = 43223 - _SPDATAFRAMESTATSCROSSTAB._serialized_start = 43225 - _SPDATAFRAMESTATSCROSSTAB._serialized_end = 43344 - _SPDATAFRAMESTATSSAMPLEBY._serialized_start = 43347 - _SPDATAFRAMESTATSSAMPLEBY._serialized_end = 43528 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 43531 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 45140 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 45143 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 45336 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 45339 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 45514 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 45517 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 45670 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 45673 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 45821 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 45824 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 45994 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 45996 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 46113 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 46116 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 46264 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 46267 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 46416 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 46419 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 46570 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 46573 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 46721 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 46724 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 46872 - _SPDATAFRAMETYPE._serialized_start = 46874 - _SPDATAFRAMETYPE._serialized_end = 46932 - _SPGROUPEDDATAFRAMETYPE._serialized_start = 46934 - _SPGROUPEDDATAFRAMETYPE._serialized_end = 47004 - _SPWINDOWTYPE._serialized_start = 47006 - _SPWINDOWTYPE._serialized_end = 47020 - _SPCOLEXPRTYPE._serialized_start = 47022 - _SPCOLEXPRTYPE._serialized_end = 47061 - _HASSRCPOSITION._serialized_start = 47064 - _HASSRCPOSITION._serialized_end = 56891 - _STMT._serialized_start = 56893 - _STMT._serialized_end = 56968 - _ASSIGN._serialized_start = 56970 - _ASSIGN._serialized_end = 57090 - _EVAL._serialized_start = 57092 - _EVAL._serialized_end = 57139 - _TYPE._serialized_start = 57142 - _TYPE._serialized_end = 58102 - _UNKNOWNTYPE._serialized_start = 58104 - _UNKNOWNTYPE._serialized_end = 58117 - _ANYTYPE._serialized_start = 58119 - _ANYTYPE._serialized_end = 58128 - _SCALARTYPE._serialized_start = 58131 - _SCALARTYPE._serialized_end = 58432 - _NUMERICTYPE._serialized_start = 58435 - _NUMERICTYPE._serialized_end = 58617 - _NUMBERTYPE._serialized_start = 58619 - _NUMBERTYPE._serialized_end = 58631 - _NOTHINGTYPE._serialized_start = 58633 - _NOTHINGTYPE._serialized_end = 58646 - _UNITTYPE._serialized_start = 58648 - _UNITTYPE._serialized_end = 58658 - _BOOLTYPE._serialized_start = 58660 - _BOOLTYPE._serialized_end = 58670 - _INT32TYPE._serialized_start = 58672 - _INT32TYPE._serialized_end = 58683 - _INT64TYPE._serialized_start = 58685 - _INT64TYPE._serialized_end = 58696 - _FLOAT64TYPE._serialized_start = 58698 - _FLOAT64TYPE._serialized_end = 58711 - _STRINGTYPE._serialized_start = 58713 - _STRINGTYPE._serialized_end = 58725 - _PDREPRTYPE._serialized_start = 58727 - _PDREPRTYPE._serialized_end = 58739 - _FNTYPE._serialized_start = 58741 - _FNTYPE._serialized_end = 58800 - _OPTIONTYPE._serialized_start = 58802 - _OPTIONTYPE._serialized_end = 58838 - _TUPLETYPE._serialized_start = 58840 - _TUPLETYPE._serialized_end = 58875 - _LISTTYPE._serialized_start = 58877 - _LISTTYPE._serialized_end = 58911 - _MAPTYPE._serialized_start = 58913 - _MAPTYPE._serialized_end = 58966 - _TYVAR._serialized_start = 58968 - _TYVAR._serialized_end = 58987 + _LIST_EXPR._serialized_start = 56 + _LIST_EXPR._serialized_end = 92 + _LIST_SPCOLUMNEXPR._serialized_start = 94 + _LIST_SPCOLUMNEXPR._serialized_end = 146 + _LIST_STRING._serialized_start = 148 + _LIST_STRING._serialized_end = 175 + _MAP_EXPR_EXPR._serialized_start = 177 + _MAP_EXPR_EXPR._serialized_end = 228 + _MAP_STRING_EXPR._serialized_start = 230 + _MAP_STRING_EXPR._serialized_end = 285 + _MAP_STRING_SPVARIANT._serialized_start = 287 + _MAP_STRING_SPVARIANT._serialized_end = 352 + _MAP_STRING_STRING._serialized_start = 354 + _MAP_STRING_STRING._serialized_end = 413 + _TUPLE_EXPR_EXPR._serialized_start = 415 + _TUPLE_EXPR_EXPR._serialized_end = 478 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start = 480 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end = 577 + _TUPLE_STRING_EXPR._serialized_start = 579 + _TUPLE_STRING_EXPR._serialized_end = 633 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 635 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 705 + _TUPLE_STRING_SPVARIANT._serialized_start = 707 + _TUPLE_STRING_SPVARIANT._serialized_end = 771 + _TUPLE_STRING_STRING._serialized_start = 773 + _TUPLE_STRING_STRING._serialized_end = 818 + _LANGUAGE._serialized_start = 821 + _LANGUAGE._serialized_end = 985 + _PYTHONLANGUAGE._serialized_start = 987 + _PYTHONLANGUAGE._serialized_end = 1034 + _SCALALANGUAGE._serialized_start = 1036 + _SCALALANGUAGE._serialized_end = 1082 + _JAVALANGUAGE._serialized_start = 1084 + _JAVALANGUAGE._serialized_end = 1129 + _VERSION._serialized_start = 1131 + _VERSION._serialized_end = 1200 + _PYTHONTIMEZONE._serialized_start = 1202 + _PYTHONTIMEZONE._serialized_end = 1286 + _PDINDEXEXPR._serialized_start = 1288 + _PDINDEXEXPR._serialized_end = 1401 + _ORD._serialized_start = 1403 + _ORD._serialized_end = 1430 + _FLEXORD._serialized_start = 1432 + _FLEXORD._serialized_end = 1463 + _KEY._serialized_start = 1465 + _KEY._serialized_end = 1492 + _PDPROJECTINDEXEXPR._serialized_start = 1495 + _PDPROJECTINDEXEXPR._serialized_end = 1808 + _ORDRANGE._serialized_start = 1810 + _ORDRANGE._serialized_end = 1896 + _FLEXORDRANGE._serialized_start = 1898 + _FLEXORDRANGE._serialized_end = 1988 + _KEYRANGE._serialized_start = 1990 + _KEYRANGE._serialized_end = 2051 + _ORDLIST._serialized_start = 2053 + _ORDLIST._serialized_end = 2087 + _FLEXORDLIST._serialized_start = 2089 + _FLEXORDLIST._serialized_end = 2127 + _KEYLIST._serialized_start = 2129 + _KEYLIST._serialized_end = 2163 + _BOOLFILTERLIST._serialized_start = 2165 + _BOOLFILTERLIST._serialized_end = 2208 + _SPFLATTENMODE._serialized_start = 2210 + _SPFLATTENMODE._serialized_end = 2335 + _SPTABLEVARIANT._serialized_start = 2337 + _SPTABLEVARIANT._serialized_end = 2417 + _SPGROUPINGSETS._serialized_start = 2419 + _SPGROUPINGSETS._serialized_end = 2473 + _SPSAVEMODE._serialized_start = 2476 + _SPSAVEMODE._serialized_end = 2635 + _SPJOINTYPE._serialized_start = 2638 + _SPJOINTYPE._serialized_end = 2932 + _SPWINDOWSPECEXPR._serialized_start = 2935 + _SPWINDOWSPECEXPR._serialized_end = 3396 + _SPWINDOWSPECORDERBY._serialized_start = 3398 + _SPWINDOWSPECORDERBY._serialized_end = 3488 + _SPWINDOWSPECPARTITIONBY._serialized_start = 3490 + _SPWINDOWSPECPARTITIONBY._serialized_end = 3584 + _SPWINDOWSPECRANGEBETWEEN._serialized_start = 3586 + _SPWINDOWSPECRANGEBETWEEN._serialized_end = 3676 + _SPWINDOWSPECROWSBETWEEN._serialized_start = 3678 + _SPWINDOWSPECROWSBETWEEN._serialized_end = 3767 + _SPTIMESTAMPTIMEZONE._serialized_start = 3770 + _SPTIMESTAMPTIMEZONE._serialized_end = 3957 + _SPDATATYPE._serialized_start = 3960 + _SPDATATYPE._serialized_end = 4762 + _SPARRAYTYPE._serialized_start = 4764 + _SPARRAYTYPE._serialized_end = 4826 + _SPCOLUMNIDENTIFIER._serialized_start = 4828 + _SPCOLUMNIDENTIFIER._serialized_end = 4862 + _SPDECIMALTYPE._serialized_start = 4864 + _SPDECIMALTYPE._serialized_end = 4913 + _SPMAPTYPE._serialized_start = 4915 + _SPMAPTYPE._serialized_end = 5014 + _SPSTRINGTYPE._serialized_start = 5016 + _SPSTRINGTYPE._serialized_end = 5075 + _SPSTRUCTFIELD._serialized_start = 5077 + _SPSTRUCTFIELD._serialized_end = 5198 + _SPSTRUCTTYPE._serialized_start = 5200 + _SPSTRUCTTYPE._serialized_end = 5270 + _SPTIMESTAMPTYPE._serialized_start = 5272 + _SPTIMESTAMPTYPE._serialized_end = 5334 + _SPVECTORTYPE._serialized_start = 5336 + _SPVECTORTYPE._serialized_end = 5398 + _SPVARIANT._serialized_start = 5401 + _SPVARIANT._serialized_end = 6107 + _SPVARIANT_OBJECT._serialized_start = 6109 + _SPVARIANT_OBJECT._serialized_end = 6164 + _SPVARIANT_LIST._serialized_start = 6166 + _SPVARIANT_LIST._serialized_end = 6217 + _SPVARIANT_TIMESTAMP._serialized_start = 6219 + _SPVARIANT_TIMESTAMP._serialized_end = 6251 + _SPVARIANT_DATE._serialized_start = 6253 + _SPVARIANT_DATE._serialized_end = 6280 + _SPVARIANT_TIME._serialized_start = 6282 + _SPVARIANT_TIME._serialized_end = 6309 + _SPVARIANT_BYTES._serialized_start = 6311 + _SPVARIANT_BYTES._serialized_end = 6339 + _SPVARIANT_STRING._serialized_start = 6341 + _SPVARIANT_STRING._serialized_end = 6370 + _SPVARIANT_BOOL._serialized_start = 6372 + _SPVARIANT_BOOL._serialized_end = 6399 + _SPVARIANT_BIGINT._serialized_start = 6401 + _SPVARIANT_BIGINT._serialized_end = 6430 + _SPVARIANT_BIGDECIMAL._serialized_start = 6432 + _SPVARIANT_BIGDECIMAL._serialized_end = 6465 + _SPVARIANT_INT._serialized_start = 6467 + _SPVARIANT_INT._serialized_end = 6493 + _SPVARIANT_FLOAT._serialized_start = 6495 + _SPVARIANT_FLOAT._serialized_end = 6523 + _SPVARIANT_DOUBLE._serialized_start = 6525 + _SPVARIANT_DOUBLE._serialized_end = 6554 + _SPROW._serialized_start = 6556 + _SPROW._serialized_end = 6591 + _SRCPOSITION._serialized_start = 6593 + _SRCPOSITION._serialized_end = 6700 + _VARID._serialized_start = 6702 + _VARID._serialized_end = 6728 + _REQUEST._serialized_start = 6730 + _REQUEST._serialized_end = 6842 + _RESPONSE._serialized_start = 6844 + _RESPONSE._serialized_end = 6881 + _CONST._serialized_start = 6884 + _CONST._serialized_end = 7571 + _NONEVAL._serialized_start = 7573 + _NONEVAL._serialized_end = 7613 + _NULLVAL._serialized_start = 7615 + _NULLVAL._serialized_end = 7655 + _BOOLVAL._serialized_start = 7657 + _BOOLVAL._serialized_end = 7708 + _INT32VAL._serialized_start = 7710 + _INT32VAL._serialized_end = 7762 + _INT64VAL._serialized_start = 7764 + _INT64VAL._serialized_end = 7816 + _FLOAT64VAL._serialized_start = 7818 + _FLOAT64VAL._serialized_end = 7872 + _BIGINTVAL._serialized_start = 7874 + _BIGINTVAL._serialized_end = 7927 + _BIGDECIMALVAL._serialized_start = 7929 + _BIGDECIMALVAL._serialized_end = 8014 + _STRINGVAL._serialized_start = 8016 + _STRINGVAL._serialized_end = 8069 + _BINARYVAL._serialized_start = 8071 + _BINARYVAL._serialized_end = 8124 + _TIMESTAMPVAL._serialized_start = 8126 + _TIMESTAMPVAL._serialized_end = 8182 + _DATEVAL._serialized_start = 8184 + _DATEVAL._serialized_end = 8235 + _TIMEVAL._serialized_start = 8237 + _TIMEVAL._serialized_end = 8288 + _PYTHONTIMESTAMPVAL._serialized_start = 8291 + _PYTHONTIMESTAMPVAL._serialized_end = 8484 + _PYTHONDATEVAL._serialized_start = 8486 + _PYTHONDATEVAL._serialized_end = 8574 + _PYTHONTIMEVAL._serialized_start = 8577 + _PYTHONTIMEVAL._serialized_end = 8723 + _FNVAL._serialized_start = 8725 + _FNVAL._serialized_end = 8804 + _IFEXPR._serialized_start = 8806 + _IFEXPR._serialized_end = 8927 + _SOMEVAL._serialized_start = 8929 + _SOMEVAL._serialized_end = 8991 + _TUPLEVAL._serialized_start = 8993 + _TUPLEVAL._serialized_end = 9057 + _LISTVAL._serialized_start = 9059 + _LISTVAL._serialized_end = 9122 + _SEQMAPVAL._serialized_start = 9124 + _SEQMAPVAL._serialized_end = 9194 + _BUILTINFN._serialized_start = 9196 + _BUILTINFN._serialized_end = 9252 + _APPLYEXPR._serialized_start = 9255 + _APPLYEXPR._serialized_end = 9393 + _PYFN._serialized_start = 9395 + _PYFN._serialized_end = 9475 + _SNOWFLAKEUDF._serialized_start = 9477 + _SNOWFLAKEUDF._serialized_end = 9552 + _SNOWFLAKESPROC._serialized_start = 9554 + _SNOWFLAKESPROC._serialized_end = 9631 + _UNARYOP._serialized_start = 9633 + _UNARYOP._serialized_end = 9703 + _BINOP._serialized_start = 9706 + _BINOP._serialized_end = 10160 + _NOT._serialized_start = 10162 + _NOT._serialized_end = 10226 + _AND._serialized_start = 10228 + _AND._serialized_end = 10312 + _OR._serialized_start = 10314 + _OR._serialized_end = 10397 + _EQ._serialized_start = 10399 + _EQ._serialized_end = 10482 + _NEQ._serialized_start = 10484 + _NEQ._serialized_end = 10568 + _LT._serialized_start = 10570 + _LT._serialized_end = 10653 + _LEQ._serialized_start = 10655 + _LEQ._serialized_end = 10739 + _GT._serialized_start = 10741 + _GT._serialized_end = 10824 + _GEQ._serialized_start = 10826 + _GEQ._serialized_end = 10910 + _NEG._serialized_start = 10912 + _NEG._serialized_end = 10976 + _ADD._serialized_start = 10978 + _ADD._serialized_end = 11062 + _SUB._serialized_start = 11064 + _SUB._serialized_end = 11148 + _MUL._serialized_start = 11150 + _MUL._serialized_end = 11234 + _DIV._serialized_start = 11236 + _DIV._serialized_end = 11320 + _MOD._serialized_start = 11322 + _MOD._serialized_end = 11406 + _POW._serialized_start = 11408 + _POW._serialized_end = 11492 + _BITAND._serialized_start = 11494 + _BITAND._serialized_end = 11581 + _BITOR._serialized_start = 11583 + _BITOR._serialized_end = 11669 + _BITXOR._serialized_start = 11671 + _BITXOR._serialized_end = 11758 + _RANGEVAL._serialized_start = 11760 + _RANGEVAL._serialized_end = 11877 + _EXPR._serialized_start = 11880 + _EXPR._serialized_end = 21421 + _REF._serialized_start = 21423 + _REF._serialized_end = 21487 + _CASTEXPR._serialized_start = 21489 + _CASTEXPR._serialized_end = 21576 + _PDDATAFRAME._serialized_start = 21579 + _PDDATAFRAME._serialized_end = 21728 + _PDDROPNA._serialized_start = 21731 + _PDDROPNA._serialized_end = 21873 + _PDDATAFRAMEGETITEM._serialized_start = 21875 + _PDDATAFRAMEGETITEM._serialized_end = 21976 + _PDDATAFRAMESETITEM._serialized_start = 21978 + _PDDATAFRAMESETITEM._serialized_end = 22101 + _PDDATAFRAMELOC._serialized_start = 22103 + _PDDATAFRAMELOC._serialized_end = 22225 + _PDDATAFRAMEILOC._serialized_start = 22227 + _PDDATAFRAMEILOC._serialized_end = 22350 + _PDREPR._serialized_start = 22352 + _PDREPR._serialized_end = 22466 + _PDREPRRESULT._serialized_start = 22468 + _PDREPRRESULT._serialized_end = 22585 + _RESULT._serialized_start = 22588 + _RESULT._serialized_end = 22746 + _EVALRESULT._serialized_start = 22749 + _EVALRESULT._serialized_end = 23521 + _EVALOK._serialized_start = 23523 + _EVALOK._serialized_end = 23603 + _ERROR._serialized_start = 23605 + _ERROR._serialized_end = 23695 + _SESSIONRESETREQUIREDERROR._serialized_start = 23697 + _SESSIONRESETREQUIREDERROR._serialized_end = 23765 + _SPCOLUMNEXPR._serialized_start = 23768 + _SPCOLUMNEXPR._serialized_end = 24046 + _SPCOLUMNREF._serialized_start = 24048 + _SPCOLUMNREF._serialized_end = 24104 + _SPCOLUMNSQLEXPR._serialized_start = 24106 + _SPCOLUMNSQLEXPR._serialized_end = 24215 + _SPCOLUMNFN._serialized_start = 24218 + _SPCOLUMNFN._serialized_end = 25515 + _SPCOLUMNALIAS._serialized_start = 25518 + _SPCOLUMNALIAS._serialized_end = 25653 + _SPCOLUMNAPPLY_INT._serialized_start = 25655 + _SPCOLUMNAPPLY_INT._serialized_end = 25742 + _SPCOLUMNAPPLY_STRING._serialized_start = 25744 + _SPCOLUMNAPPLY_STRING._serialized_end = 25836 + _SPCOLUMNASC._serialized_start = 25838 + _SPCOLUMNASC._serialized_end = 25955 + _SPCOLUMNBETWEEN._serialized_start = 25958 + _SPCOLUMNBETWEEN._serialized_end = 26094 + _SPCOLUMNCAST._serialized_start = 26096 + _SPCOLUMNCAST._serialized_end = 26194 + _SPCOLUMNTRYCAST._serialized_start = 26196 + _SPCOLUMNTRYCAST._serialized_end = 26297 + _SPCOLUMNDESC._serialized_start = 26299 + _SPCOLUMNDESC._serialized_end = 26417 + _SPCOLUMNEQUALNAN._serialized_start = 26419 + _SPCOLUMNEQUALNAN._serialized_end = 26492 + _SPCOLUMNEQUALNULL._serialized_start = 26494 + _SPCOLUMNEQUALNULL._serialized_end = 26592 + _SPCOLUMNIN_DATAFRAME._serialized_start = 26594 + _SPCOLUMNIN_DATAFRAME._serialized_end = 26705 + _SPCOLUMNIN_SEQ._serialized_start = 26707 + _SPCOLUMNIN_SEQ._serialized_end = 26805 + _SPCOLUMNISNOTNULL._serialized_start = 26807 + _SPCOLUMNISNOTNULL._serialized_end = 26881 + _SPCOLUMNISNULL._serialized_start = 26883 + _SPCOLUMNISNULL._serialized_end = 26954 + _SPCOLUMNNAME._serialized_start = 26956 + _SPCOLUMNNAME._serialized_end = 27040 + _SPCOLUMNOVER._serialized_start = 27042 + _SPCOLUMNOVER._serialized_end = 27155 + _SPCOLUMNWITHINGROUP._serialized_start = 27157 + _SPCOLUMNWITHINGROUP._serialized_end = 27276 + _SPCOLUMNSTRINGLIKE._serialized_start = 27278 + _SPCOLUMNSTRINGLIKE._serialized_end = 27381 + _SPCOLUMNSTRINGREGEXP._serialized_start = 27383 + _SPCOLUMNSTRINGREGEXP._serialized_end = 27488 + _SPCOLUMNSTRINGSTARTSWITH._serialized_start = 27490 + _SPCOLUMNSTRINGSTARTSWITH._serialized_end = 27598 + _SPCOLUMNSTRINGENDSWITH._serialized_start = 27600 + _SPCOLUMNSTRINGENDSWITH._serialized_end = 27706 + _SPCOLUMNSTRINGSUBSTR._serialized_start = 27708 + _SPCOLUMNSTRINGSUBSTR._serialized_end = 27833 + _SPCOLUMNSTRINGCOLLATE._serialized_start = 27835 + _SPCOLUMNSTRINGCOLLATE._serialized_end = 27948 + _SPCOLUMNSTRINGCONTAINS._serialized_start = 27950 + _SPCOLUMNSTRINGCONTAINS._serialized_end = 28057 + _SPDATAFRAMEEXPR._serialized_start = 28060 + _SPDATAFRAMEEXPR._serialized_end = 31767 + _SPDATAFRAMEREF._serialized_start = 31769 + _SPDATAFRAMEREF._serialized_end = 31840 + _SPDATAFRAMESHOW._serialized_start = 31842 + _SPDATAFRAMESHOW._serialized_end = 31914 + _SPCREATEDATAFRAME._serialized_start = 31917 + _SPCREATEDATAFRAME._serialized_end = 32046 + _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 32049 + _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 32238 + _SPFLATTEN_COLUMN._serialized_start = 32240 + _SPFLATTEN_COLUMN._serialized_end = 32323 + _SPGENERATOR._serialized_start = 32325 + _SPGENERATOR._serialized_end = 32442 + _SPRANGE._serialized_start = 32445 + _SPRANGE._serialized_end = 32585 + _SPSQL._serialized_start = 32587 + _SPSQL._serialized_end = 32667 + _SPSTOREDPROCEDURE._serialized_start = 32669 + _SPSTOREDPROCEDURE._serialized_end = 32784 + _SPTABLE._serialized_start = 32786 + _SPTABLE._serialized_end = 32913 + _SPTABLEFUNCTION._serialized_start = 32915 + _SPTABLEFUNCTION._serialized_end = 33039 + _SPDATAFRAMETODF._serialized_start = 33041 + _SPDATAFRAMETODF._serialized_end = 33160 + _SPDATAFRAMENADROP_SCALA._serialized_start = 33163 + _SPDATAFRAMENADROP_SCALA._serialized_end = 33298 + _SPDATAFRAMENADROP_PYTHON._serialized_start = 33301 + _SPDATAFRAMENADROP_PYTHON._serialized_end = 33484 + _SPDATAFRAMENAFILL._serialized_start = 33487 + _SPDATAFRAMENAFILL._serialized_end = 33672 + _SPDATAFRAMENAREPLACE._serialized_start = 33675 + _SPDATAFRAMENAREPLACE._serialized_end = 33977 + _SPDATAFRAMEAGG._serialized_start = 33980 + _SPDATAFRAMEAGG._serialized_end = 34113 + _SPDATAFRAMEAPPLY._serialized_start = 34115 + _SPDATAFRAMEAPPLY._serialized_end = 34216 + _SPDATAFRAMECOL._serialized_start = 34218 + _SPDATAFRAMECOL._serialized_end = 34317 + _SPDATAFRAMECROSSJOIN._serialized_start = 34319 + _SPDATAFRAMECROSSJOIN._serialized_end = 34442 + _SPDATAFRAMECUBE._serialized_start = 34445 + _SPDATAFRAMECUBE._serialized_end = 34578 + _SPDATAFRAMEDISTINCT._serialized_start = 34580 + _SPDATAFRAMEDISTINCT._serialized_end = 34666 + _SPDATAFRAMEDROP_COLUMNS._serialized_start = 34669 + _SPDATAFRAMEDROP_COLUMNS._serialized_end = 34810 + _SPDATAFRAMEDROP_STRINGS._serialized_start = 34812 + _SPDATAFRAMEDROP_STRINGS._serialized_end = 34934 + _SPDATAFRAMEDROPDUPLICATES._serialized_start = 34936 + _SPDATAFRAMEDROPDUPLICATES._serialized_end = 35042 + _SPDATAFRAMEEXCEPT._serialized_start = 35044 + _SPDATAFRAMEEXCEPT._serialized_end = 35165 + _SPDATAFRAMEFILTER._serialized_start = 35167 + _SPDATAFRAMEFILTER._serialized_end = 35289 + _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 35292 + _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 35524 + _SPDATAFRAMEFLATTEN_COLUMN._serialized_start = 35526 + _SPDATAFRAMEFLATTEN_COLUMN._serialized_end = 35652 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 35655 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 35799 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 35801 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 35926 + _SPDATAFRAMEGROUPBY._serialized_start = 35928 + _SPDATAFRAMEGROUPBY._serialized_end = 36013 + _SPDATAFRAMEINTERSECT._serialized_start = 36015 + _SPDATAFRAMEINTERSECT._serialized_end = 36139 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 36142 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 36412 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 36415 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 36691 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 36694 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 36910 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 36913 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 37149 + _SPDATAFRAMELIMIT._serialized_start = 37151 + _SPDATAFRAMELIMIT._serialized_end = 37245 + _SPDATAFRAMENATURALJOIN._serialized_start = 37248 + _SPDATAFRAMENATURALJOIN._serialized_end = 37409 + _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 37412 + _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 37575 + _SPDATAFRAMEPIVOT_STRING._serialized_start = 37578 + _SPDATAFRAMEPIVOT_STRING._serialized_end = 37722 + _SPDATAFRAMERENAME._serialized_start = 37725 + _SPDATAFRAMERENAME._serialized_end = 37859 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 37862 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 38005 + _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 38007 + _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 38131 + _SPDATAFRAMESAMPLE_DOUBLE._serialized_start = 38133 + _SPDATAFRAMESAMPLE_DOUBLE._serialized_end = 38254 + _SPDATAFRAMESAMPLE_LONG._serialized_start = 38256 + _SPDATAFRAMESAMPLE_LONG._serialized_end = 38358 + _SPDATAFRAMESELECT_COLUMNS._serialized_start = 38361 + _SPDATAFRAMESELECT_COLUMNS._serialized_end = 38496 + _SPDATAFRAMESELECT_STRINGS._serialized_start = 38498 + _SPDATAFRAMESELECT_STRINGS._serialized_end = 38622 + _SPDATAFRAMESORT._serialized_start = 38625 + _SPDATAFRAMESORT._serialized_end = 38758 + _SPDATAFRAMEUNION._serialized_start = 38760 + _SPDATAFRAMEUNION._serialized_end = 38879 + _SPDATAFRAMEUNIONALL._serialized_start = 38881 + _SPDATAFRAMEUNIONALL._serialized_end = 39003 + _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 39006 + _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 39134 + _SPDATAFRAMEUNIONBYNAME._serialized_start = 39136 + _SPDATAFRAMEUNIONBYNAME._serialized_end = 39261 + _SPDATAFRAMEWHERE._serialized_start = 39263 + _SPDATAFRAMEWHERE._serialized_end = 39384 + _SPDATAFRAMEWITHCOLUMN._serialized_start = 39387 + _SPDATAFRAMEWITHCOLUMN._serialized_end = 39525 + _SPDATAFRAMEWITHCOLUMNS._serialized_start = 39528 + _SPDATAFRAMEWITHCOLUMNS._serialized_end = 39671 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 39674 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 39833 + _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 39836 + _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 40352 + _SPDATAFRAMEREADEROPTIONS._serialized_start = 40354 + _SPDATAFRAMEREADEROPTIONS._serialized_end = 40408 + _SPDATAFRAMEREADERSCHEMA._serialized_start = 40410 + _SPDATAFRAMEREADERSCHEMA._serialized_end = 40463 + _SPREADAVRO._serialized_start = 40465 + _SPREADAVRO._serialized_end = 40522 + _SPREADCSV._serialized_start = 40524 + _SPREADCSV._serialized_end = 40580 + _SPREADJSON._serialized_start = 40582 + _SPREADJSON._serialized_end = 40639 + _SPREADORC._serialized_start = 40641 + _SPREADORC._serialized_end = 40697 + _SPREADPARQUET._serialized_start = 40699 + _SPREADPARQUET._serialized_end = 40759 + _SPREADTABLE._serialized_start = 40761 + _SPREADTABLE._serialized_end = 40819 + _SPREADXML._serialized_start = 40821 + _SPREADXML._serialized_end = 40877 + _SPCOPYINTO._serialized_start = 40880 + _SPCOPYINTO._serialized_end = 41083 + _SPDATAFRAMEWRITER._serialized_start = 41086 + _SPDATAFRAMEWRITER._serialized_end = 41449 + _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 41451 + _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 41506 + _SPDATAFRAMEWRITEROPTIONS._serialized_start = 41508 + _SPDATAFRAMEWRITEROPTIONS._serialized_end = 41562 + _SPWRITECSV._serialized_start = 41564 + _SPWRITECSV._serialized_end = 41655 + _SPWRITEJSON._serialized_start = 41657 + _SPWRITEJSON._serialized_end = 41749 + _SPWRITEPARQUET._serialized_start = 41751 + _SPWRITEPARQUET._serialized_end = 41846 + _SPWRITETABLE._serialized_start = 41849 + _SPWRITETABLE._serialized_end = 41998 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start = 42000 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end = 42066 + _SPDATAFRAMESTATSCORR._serialized_start = 42068 + _SPDATAFRAMESTATSCORR._serialized_end = 42124 + _SPDATAFRAMESTATSCOV._serialized_start = 42126 + _SPDATAFRAMESTATSCOV._serialized_end = 42181 + _SPDATAFRAMESTATSCROSSTAB._serialized_start = 42183 + _SPDATAFRAMESTATSCROSSTAB._serialized_end = 42302 + _SPDATAFRAMESTATSSAMPLEBY._serialized_start = 42305 + _SPDATAFRAMESTATSSAMPLEBY._serialized_end = 42486 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 42489 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 44098 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 44101 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 44294 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 44297 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 44472 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 44475 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 44628 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 44631 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 44779 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 44782 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 44952 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 44954 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 45071 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 45074 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 45222 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 45225 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 45374 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 45377 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 45528 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 45531 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 45679 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 45682 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 45830 + _SPDATAFRAMETYPE._serialized_start = 45832 + _SPDATAFRAMETYPE._serialized_end = 45890 + _SPGROUPEDDATAFRAMETYPE._serialized_start = 45892 + _SPGROUPEDDATAFRAMETYPE._serialized_end = 45962 + _SPWINDOWTYPE._serialized_start = 45964 + _SPWINDOWTYPE._serialized_end = 45978 + _SPCOLEXPRTYPE._serialized_start = 45980 + _SPCOLEXPRTYPE._serialized_end = 46019 + _HASSRCPOSITION._serialized_start = 46022 + _HASSRCPOSITION._serialized_end = 55607 + _STMT._serialized_start = 55609 + _STMT._serialized_end = 55684 + _ASSIGN._serialized_start = 55686 + _ASSIGN._serialized_end = 55806 + _EVAL._serialized_start = 55808 + _EVAL._serialized_end = 55855 + _TYPE._serialized_start = 55858 + _TYPE._serialized_end = 56818 + _UNKNOWNTYPE._serialized_start = 56820 + _UNKNOWNTYPE._serialized_end = 56833 + _ANYTYPE._serialized_start = 56835 + _ANYTYPE._serialized_end = 56844 + _SCALARTYPE._serialized_start = 56847 + _SCALARTYPE._serialized_end = 57148 + _NUMERICTYPE._serialized_start = 57151 + _NUMERICTYPE._serialized_end = 57333 + _NUMBERTYPE._serialized_start = 57335 + _NUMBERTYPE._serialized_end = 57347 + _NOTHINGTYPE._serialized_start = 57349 + _NOTHINGTYPE._serialized_end = 57362 + _UNITTYPE._serialized_start = 57364 + _UNITTYPE._serialized_end = 57374 + _BOOLTYPE._serialized_start = 57376 + _BOOLTYPE._serialized_end = 57386 + _INT32TYPE._serialized_start = 57388 + _INT32TYPE._serialized_end = 57399 + _INT64TYPE._serialized_start = 57401 + _INT64TYPE._serialized_end = 57412 + _FLOAT64TYPE._serialized_start = 57414 + _FLOAT64TYPE._serialized_end = 57427 + _STRINGTYPE._serialized_start = 57429 + _STRINGTYPE._serialized_end = 57441 + _PDREPRTYPE._serialized_start = 57443 + _PDREPRTYPE._serialized_end = 57455 + _FNTYPE._serialized_start = 57457 + _FNTYPE._serialized_end = 57516 + _OPTIONTYPE._serialized_start = 57518 + _OPTIONTYPE._serialized_end = 57554 + _TUPLETYPE._serialized_start = 57556 + _TUPLETYPE._serialized_end = 57591 + _LISTTYPE._serialized_start = 57593 + _LISTTYPE._serialized_end = 57627 + _MAPTYPE._serialized_start = 57629 + _MAPTYPE._serialized_end = 57682 + _TYVAR._serialized_start = 57684 + _TYVAR._serialized_end = 57703 # @@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 9e67007b6f8..6fd8cb76acd 100755 --- a/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh +++ b/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh @@ -28,7 +28,7 @@ set -euxo pipefail SCRIPT_DIR=$(dirname "$0") # Step 1: Build the python proto file from scratch via bazel -ssh $HOST "bash -c 'cd Snowflake/trunk;bazel build //Snowpark:py_proto'" +ssh $HOST "bash -c 'cd Snowflake/trunk;bazel build //Snowpark:ast && bazel build //Snowpark:py_proto'" # Step 2: Fetch from source tree REMOTE_HOME=$(ssh $HOST "bash -c 'echo \$HOME'") diff --git a/src/snowflake/snowpark/column.py b/src/snowflake/snowpark/column.py index 6dd764c1e5d..444a721f564 100644 --- a/src/snowflake/snowpark/column.py +++ b/src/snowflake/snowpark/column.py @@ -3,16 +3,14 @@ # Copyright (c) 2012-2024 Snowflake Computing Inc. All rights reserved. # -import inspect import sys -from typing import Any, Dict, Optional, Union +from typing import Optional, Union import snowflake.snowpark import snowflake.snowpark._internal.proto.ast_pb2 as proto from snowflake.snowpark._internal.analyzer.binary_expression import ( Add, And, - BinaryExpression, BitwiseAnd, BitwiseOr, BitwiseXor, @@ -61,15 +59,14 @@ IsNotNull, IsNull, Not, - UnaryExpression, UnaryMinus, UnresolvedAlias, ) from snowflake.snowpark._internal.ast_utils import ( - FAIL_ON_MISSING_AST, - build_const_from_python_val, - set_src_position, - setattr_if_not_none, + _fill_ast_with_snowpark_column_or_literal, + create_ast_for_column, + snowpark_expression_to_ast, + with_src_position, ) from snowflake.snowpark._internal.type_utils import ( VALID_PYTHON_TYPES_FOR_LITERAL_VALUE, @@ -266,18 +263,8 @@ def __init__( # A column from the aliased DataFrame instance can be created using this alias like col(, ) # In the IR we will need to store this alias to resolve which DataFrame instance the user is referring to if self._ast is None: - if expr2 == "*": - self._ast = Column._create_ast( - property="sp_column_sql_expr", - assign_fields={"sql": "*"}, - assign_opt_fields={"df_alias": expr1}, - ) - else: - self._ast = Column._create_ast( - property="sp_column", - assign_fields={"name": quote_name(expr2)}, - assign_opt_fields={"df_alias": expr1}, - ) + self._ast = create_ast_for_column(expr1, expr2) + elif isinstance(expr1, str): if expr1 == "*": self._expression = Star([]) @@ -285,145 +272,180 @@ def __init__( self._expression = UnresolvedAttribute(quote_name(expr1)) if self._ast is None: - if expr1 == "*": - self._ast = Column._create_ast( - property="sp_column_sql_expr", assign_fields={"sql": "*"} - ) - else: - self._ast = Column._create_ast( - property="sp_column", assign_fields={"name": quote_name(expr1)} - ) + self._ast = create_ast_for_column(expr1, None) elif isinstance(expr1, Expression): self._expression = expr1 + + if self._ast is None: + if hasattr(expr1, "_ast"): + self._ast = expr1._ast + else: + self._ast = snowpark_expression_to_ast(expr1) + else: # pragma: no cover raise TypeError("Column constructor only accepts str or expression.") def __getitem__(self, field: Union[str, int]) -> "Column": """Accesses an element of ARRAY column by ordinal position, or an element of OBJECT column by key.""" if isinstance(field, str): - ast = Column._create_ast( - property="sp_column_apply__string", - copy_messages={"col": self._ast}, - assign_fields={"field": quote_name(field, keep_case=True)}, - ) - return Column(SubfieldString(self._expression, field), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_apply__string) + ast.col.CopyFrom(self._ast) + ast.field = field + return Column(SubfieldString(self._expression, field), ast=expr) elif isinstance(field, int): - ast = Column._create_ast( - property="sp_column_apply__int", - copy_messages={"col": self._ast}, - assign_fields={"idx": field}, - ) - return Column(SubfieldInt(self._expression, field), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_apply__int) + ast.col.CopyFrom(self._ast) + ast.idx = field + return Column(SubfieldInt(self._expression, field), ast=expr) else: raise TypeError(f"Unexpected item type: {type(field)}") - # overload operators - def _bin_op_impl( - self, property: str, operator: BinaryExpression, other: ColumnOrLiteral - ) -> "Column": - """Binary ____ operator implementation for columns with automatic AST logging, i.e. op(self, other) - - Args: - property (str): IR entity representing the binary operation in the Column AST - operator (BinaryExpression): Snowpark binary operator to build the Expression instance - other (ColumnOrLiteral): Other input column to be operated over (rhs) - - Returns: - Column: new column instance with AST representing new operation over inputs in Column._ast - """ - ast = Column._create_ast( - property=property, - copy_messages={"lhs": self._ast}, - fill_expr_asts={"rhs": other}, - ) - return Column(operator(self._expression, Column._to_expr(other)), ast=ast) - - def _bin_op_rimpl( - self, property: str, operator: BinaryExpression, other: ColumnOrLiteral - ) -> "Column": - """Binary __r__ operator implementation for columns with AST logging, i.e. op(other, self) - - Args: - property (str): IR entity representing the binary operation in the Column AST - operator (BinaryExpression): Snowpark binary operator to build the Expression instance - other (ColumnOrLiteral): Other input column to be operated over (lhs) - - Returns: - Column: new column instance with AST representing new operation over inputs in Column._ast - """ - ast = Column._create_ast( - property=property, - copy_messages={"rhs": self._ast}, - fill_expr_asts={"lhs": other}, - ) - return Column(operator(Column._to_expr(other), self._expression), ast=ast) - def __eq__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Equal to.""" - return self._bin_op_impl("eq", EqualTo, other) + expr = proto.Expr() + ast = with_src_position(expr.eq) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + right = Column._to_expr(other) + return Column(EqualTo(self._expression, right), ast=expr) def __ne__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Not equal to.""" - return self._bin_op_impl("neq", NotEqualTo, other) + expr = proto.Expr() + ast = with_src_position(expr.neq) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + right = Column._to_expr(other) + return Column(NotEqualTo(self._expression, right), ast=expr) def __gt__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Greater than.""" - return self._bin_op_impl("gt", GreaterThan, other) + expr = proto.Expr() + ast = with_src_position(expr.gt) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(GreaterThan(self._expression, Column._to_expr(other)), ast=expr) def __lt__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Less than.""" - return self._bin_op_impl("lt", LessThan, other) + expr = proto.Expr() + ast = with_src_position(expr.lt) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(LessThan(self._expression, Column._to_expr(other)), ast=expr) def __ge__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Greater than or equal to.""" - return self._bin_op_impl("geq", GreaterThanOrEqual, other) + expr = proto.Expr() + ast = with_src_position(expr.geq) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column( + GreaterThanOrEqual(self._expression, Column._to_expr(other)), ast=expr + ) def __le__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Less than or equal to.""" - return self._bin_op_impl("leq", LessThanOrEqual, other) + expr = proto.Expr() + ast = with_src_position(expr.leq) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column( + LessThanOrEqual(self._expression, Column._to_expr(other)), ast=expr + ) def __add__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Plus.""" - return self._bin_op_impl("add", Add, other) + expr = proto.Expr() + ast = with_src_position(expr.add) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(Add(self._expression, Column._to_expr(other)), ast=expr) def __radd__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": - return self._bin_op_rimpl("add", Add, other) + expr = proto.Expr() + ast = with_src_position(expr.add) + _fill_ast_with_snowpark_column_or_literal(ast.lhs, other) + ast.rhs.CopyFrom(self._ast) + return Column(Add(Column._to_expr(other), self._expression), ast=expr) def __sub__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Minus.""" - return self._bin_op_impl("sub", Subtract, other) + expr = proto.Expr() + ast = with_src_position(expr.sub) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(Subtract(self._expression, Column._to_expr(other)), ast=expr) def __rsub__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": - return self._bin_op_rimpl("sub", Subtract, other) + expr = proto.Expr() + ast = with_src_position(expr.sub) + _fill_ast_with_snowpark_column_or_literal(ast.lhs, other) + ast.rhs.CopyFrom(self._ast) + return Column(Subtract(Column._to_expr(other), self._expression), ast=expr) def __mul__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Multiply.""" - return self._bin_op_impl("mul", Multiply, other) + expr = proto.Expr() + ast = with_src_position(expr.mul) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(Multiply(self._expression, Column._to_expr(other)), ast=expr) def __rmul__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": - return self._bin_op_rimpl("mul", Multiply, other) + expr = proto.Expr() + ast = with_src_position(expr.mul) + _fill_ast_with_snowpark_column_or_literal(ast.lhs, other) + ast.rhs.CopyFrom(self._ast) + return Column(Multiply(Column._to_expr(other), self._expression), ast=expr) def __truediv__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Divide.""" - return self._bin_op_impl("div", Divide, other) + expr = proto.Expr() + ast = with_src_position(expr.div) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(Divide(self._expression, Column._to_expr(other)), ast=expr) def __rtruediv__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": - return self._bin_op_rimpl("div", Divide, other) + expr = proto.Expr() + ast = with_src_position(expr.div) + _fill_ast_with_snowpark_column_or_literal(ast.lhs, other) + ast.rhs.CopyFrom(self._ast) + return Column(Divide(Column._to_expr(other), self._expression), ast=expr) def __mod__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Remainder.""" - return self._bin_op_impl("mod", Remainder, other) + expr = proto.Expr() + ast = with_src_position(expr.mod) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(Remainder(self._expression, Column._to_expr(other)), ast=expr) def __rmod__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": - return self._bin_op_rimpl("mod", Remainder, other) + expr = proto.Expr() + ast = with_src_position(expr.mod) + _fill_ast_with_snowpark_column_or_literal(ast.lhs, other) + ast.rhs.CopyFrom(self._ast) + return Column(Remainder(Column._to_expr(other), self._expression), ast=expr) def __pow__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Power.""" - return self._bin_op_impl("pow", Pow, other) + expr = proto.Expr() + ast = with_src_position(expr.pow) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(Pow(self._expression, Column._to_expr(other)), ast=expr) def __rpow__(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": - return self._bin_op_rimpl("pow", Pow, other) + expr = proto.Expr() + ast = with_src_position(expr.pow) + _fill_ast_with_snowpark_column_or_literal(ast.lhs, other) + ast.rhs.CopyFrom(self._ast) + return Column(Pow(Column._to_expr(other), self._expression), ast=expr) def __bool__(self) -> bool: raise TypeError( @@ -487,6 +509,13 @@ def in_( Args: vals: The values, or a :class:`DataFrame` instance to use to check for membership against this column. """ + + # TODO SNOW-1515255: For in_([col("A"), "B", "A"], df) support df parameter. + if any(isinstance(val, snowflake.snowpark.dataframe.DataFrame) for val in vals): + raise NotImplementedError( + "SNOW-1515255: No support for dataframe paramter in in_." + ) + cols = parse_positional_args_to_list(*vals) cols = [_to_col_if_lit(col, "in_") for col in cols] @@ -535,7 +564,16 @@ def validate_value(value_expr: Expression): for ve in value_expressions: validate_value(ve) - return Column(InExpression(self._expression, value_expressions)) + ast = proto.Expr() + proto_ast = ast.sp_column_in__seq + proto_ast.col.CopyFrom(self._ast) + values_ast = proto_ast.values.add() + + for expr in value_expressions: + expr_ast = values_ast.list_val.vs.add() + expr_ast.CopyFrom(snowpark_expression_to_ast(expr)) + + return Column(InExpression(self._expression, value_expressions), ast=ast) def between( self, @@ -543,104 +581,133 @@ def between( upper_bound: Union[ColumnOrLiteral, Expression], ) -> "Column": """Between lower bound and upper bound.""" - ast = Column._create_ast( - property="sp_column_between", - copy_messages={"col": self._ast}, - fill_expr_asts={"lower_bound": lower_bound, "upper_bound": upper_bound}, - ) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_between) + ast.col.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.lower_bound, lower_bound) + _fill_ast_with_snowpark_column_or_literal(ast.upper_bound, upper_bound) ret = (Column._to_expr(lower_bound) <= self) & ( self <= Column._to_expr(upper_bound) ) - ret._ast = ast + ret._ast = expr return ret def bitand(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Bitwise and.""" - return self._bin_op_rimpl("bit_and", BitwiseAnd, other) + expr = proto.Expr() + ast = with_src_position(expr.bit_and) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(BitwiseAnd(Column._to_expr(other), self._expression), ast=expr) def bitor(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Bitwise or.""" - return self._bin_op_rimpl("bit_or", BitwiseOr, other) + expr = proto.Expr() + ast = with_src_position(expr.bit_or) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(BitwiseOr(Column._to_expr(other), self._expression), ast=expr) def bitxor(self, other: Union[ColumnOrLiteral, Expression]) -> "Column": """Bitwise xor.""" - return self._bin_op_rimpl("bit_xor", BitwiseXor, other) - - def _unary_op_impl( - self, property: str, operator: UnaryExpression, attr: str = "col" - ) -> "Column": - """Unary operation implementation for Columns with automatic AST logging - - Args: - property (str): IR entity representing the unary operation in the Column AST - operator (UnaryExpression): Snowpark unary operator to build the Expression instance - attr (str, optional): Field of the IR entity representing this Column instance, or self. Defaults to "col". - - Returns: - Column: new column instance with AST representing new operation over this Column instance, self. - """ - ast = Column._create_ast( - property=property, - copy_messages={attr: self._ast}, - ) - return Column(operator(self._expression), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.bit_xor) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(BitwiseXor(Column._to_expr(other), self._expression), ast=expr) def __neg__(self) -> "Column": """Unary minus.""" - return self._unary_op_impl("neg", UnaryMinus, attr="operand") + expr = proto.Expr() + ast = with_src_position(expr.neg) + ast.operand.CopyFrom(self._ast) + return Column(UnaryMinus(self._expression), ast=expr) def equal_null(self, other: "Column") -> "Column": """Equal to. You can use this for comparisons against a null value.""" - return self._bin_op_impl("sp_column_equal_null", EqualNullSafe, other) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_equal_null) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(EqualNullSafe(self._expression, Column._to_expr(other)), ast=expr) def equal_nan(self) -> "Column": """Is NaN.""" - return self._unary_op_impl("sp_column_equal_nan", IsNaN) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_equal_nan) + ast.col.CopyFrom(self._ast) + return Column(IsNaN(self._expression), ast=expr) def is_null(self) -> "Column": """Is null.""" - return self._unary_op_impl("sp_column_is_null", IsNull) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_is_null) + ast.col.CopyFrom(self._ast) + return Column(IsNull(self._expression), ast=expr) def is_not_null(self) -> "Column": """Is not null.""" - return self._unary_op_impl("sp_column_is_not_null", IsNotNull) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_is_not_null) + ast.col.CopyFrom(self._ast) + return Column(IsNotNull(self._expression), ast=expr) # `and, or, not` cannot be overloaded in Python, so use bitwise operators as boolean operators def __and__(self, other: "Column") -> "Column": """And.""" - return self._bin_op_impl("and", And, other) + expr = proto.Expr() + ast = with_src_position(getattr(expr, "and")) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(And(self._expression, Column._to_expr(other)), ast=expr) def __rand__(self, other: "Column") -> "Column": - return self._bin_op_rimpl("and", And, other) # pragma: no cover + expr = proto.Expr() + ast = with_src_position(getattr(expr, "and")) + _fill_ast_with_snowpark_column_or_literal(ast.lhs, other) + ast.rhs.CopyFrom(self._ast) + return Column( + And(Column._to_expr(other), self._expression), ast=expr + ) # pragma: no cover def __or__(self, other: "Column") -> "Column": """Or.""" - return self._bin_op_impl("or", Or, other) + expr = proto.Expr() + ast = with_src_position(getattr(expr, "or")) + ast.lhs.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.rhs, other) + return Column(Or(self._expression, Column._to_expr(other)), ast=expr) def __ror__(self, other: "Column") -> "Column": - return self._bin_op_rimpl("or", Or, other) # pragma: no cover + expr = proto.Expr() + ast = with_src_position(getattr(expr, "or")) + _fill_ast_with_snowpark_column_or_literal(ast.lhs, other) + ast.rhs.CopyFrom(self._ast) + return Column( + And(Column._to_expr(other), self._expression), ast=expr + ) # pragma: no cover def __invert__(self) -> "Column": """Unary not.""" - return self._unary_op_impl("not", Not, attr="operand") + expr = proto.Expr() + ast = with_src_position(getattr(expr, "not")) + ast.operand.CopyFrom(self._ast) + return Column(Not(self._expression), ast=expr) def _cast(self, to: Union[str, DataType], try_: bool = False) -> "Column": if isinstance(to, str): to = type_string_to_type_object(to) + expr = proto.Expr() if try_: - ast = Column._create_ast( - property="sp_column_try_cast", - copy_messages={"col": self._ast}, - ) - to._fill_ast(ast.sp_column_try_cast.to) + ast = with_src_position(expr.sp_column_try_cast) + ast.col.CopyFrom(self._ast) + to._fill_ast(ast.to) else: - ast = Column._create_ast( - property="sp_column_cast", - copy_messages={"col": self._ast}, - ) - to._fill_ast(ast.sp_column_cast.to) + ast = with_src_position(expr.sp_column_cast) + ast.col.CopyFrom(self._ast) + to._fill_ast(ast.to) - return Column(Cast(self._expression, to, try_), ast=ast) + return Column(Cast(self._expression, to, try_), ast=expr) def cast(self, to: Union[str, DataType]) -> "Column": """Casts the value of the Column to the specified data type. @@ -656,58 +723,53 @@ def try_cast(self, to: Union[str, DataType]) -> "Column": def desc(self) -> "Column": """Returns a Column expression with values sorted in descending order.""" - ast = Column._create_ast( - property="sp_column_desc", copy_messages={"col": self._ast} - ) - return Column(SortOrder(self._expression, Descending()), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_desc) + ast.col.CopyFrom(self._ast) + return Column(SortOrder(self._expression, Descending()), ast=expr) def desc_nulls_first(self) -> "Column": """Returns a Column expression with values sorted in descending order (null values sorted before non-null values).""" - ast = Column._create_ast( - property="sp_column_desc", - copy_messages={"col": self._ast}, - assign_opt_fields={"nulls_first": True}, - ) - return Column(SortOrder(self._expression, Descending(), NullsFirst()), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_desc) + ast.col.CopyFrom(self._ast) + ast.nulls_first.value = True + return Column(SortOrder(self._expression, Descending(), NullsFirst()), ast=expr) def desc_nulls_last(self) -> "Column": """Returns a Column expression with values sorted in descending order (null values sorted after non-null values).""" - ast = Column._create_ast( - property="sp_column_desc", - copy_messages={"col": self._ast}, - assign_opt_fields={"nulls_first": False}, - ) - return Column(SortOrder(self._expression, Descending(), NullsLast()), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_desc) + ast.col.CopyFrom(self._ast) + ast.nulls_first.value = False + return Column(SortOrder(self._expression, Descending(), NullsLast()), ast=expr) def asc(self) -> "Column": """Returns a Column expression with values sorted in ascending order.""" - ast = Column._create_ast( - property="sp_column_asc", - copy_messages={"col": self._ast}, - ) - return Column(SortOrder(self._expression, Ascending()), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_asc) + ast.col.CopyFrom(self._ast) + return Column(SortOrder(self._expression, Ascending()), ast=expr) def asc_nulls_first(self) -> "Column": """Returns a Column expression with values sorted in ascending order (null values sorted before non-null values).""" - ast = Column._create_ast( - property="sp_column_asc", - copy_messages={"col": self._ast}, - assign_opt_fields={"nulls_first": True}, - ) - return Column(SortOrder(self._expression, Ascending(), NullsFirst()), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_asc) + ast.col.CopyFrom(self._ast) + ast.nulls_first.value = True + return Column(SortOrder(self._expression, Ascending(), NullsFirst()), ast=expr) def asc_nulls_last(self) -> "Column": """Returns a Column expression with values sorted in ascending order (null values sorted after non-null values).""" - ast = Column._create_ast( - property="sp_column_asc", - copy_messages={"col": self._ast}, - assign_opt_fields={"nulls_first": False}, - ) - return Column(SortOrder(self._expression, Ascending(), NullsLast()), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_asc) + ast.col.CopyFrom(self._ast) + ast.nulls_first.value = False + return Column(SortOrder(self._expression, Ascending(), NullsLast()), ast=expr) def like(self, pattern: ColumnOrLiteralStr) -> "Column": """Allows case-sensitive matching of strings based on comparison with a pattern. @@ -719,18 +781,11 @@ def like(self, pattern: ColumnOrLiteralStr) -> "Column": For details, see the Snowflake documentation on `LIKE `_. """ - ast = Column._create_ast( - property="string_like", - copy_messages={"str": self._ast}, - fill_expr_asts={"pattern": pattern}, - ) - return Column( - Like( - self._expression, - Column._to_expr(pattern), - ), - ast=ast, - ) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_string_like) + ast.col.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.pattern, pattern) + return Column(Like(self._expression, Column._to_expr(pattern)), ast=expr) def regexp(self, pattern: ColumnOrLiteralStr) -> "Column": """Returns true if this Column matches the specified regular expression. @@ -745,18 +800,11 @@ def regexp(self, pattern: ColumnOrLiteralStr) -> "Column": :meth:`rlike` is an alias of :meth:`regexp`. """ - ast = Column._create_ast( - property="string_regexp", - copy_messages={"str": self._ast}, - fill_expr_asts={"pattern": pattern}, - ) - return Column( - RegExp( - self._expression, - Column._to_expr(pattern), - ), - ast=ast, - ) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_string_regexp) + ast.col.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.pattern, pattern) + return Column(RegExp(self._expression, Column._to_expr(pattern)), ast=expr) def startswith(self, other: ColumnOrLiteralStr) -> "Column": """Returns true if this Column starts with another string. @@ -765,14 +813,13 @@ def startswith(self, other: ColumnOrLiteralStr) -> "Column": other: A :class:`Column` or a ``str`` that is used to check if this column starts with it. A ``str`` will be interpreted as a literal value instead of a column name. """ - ast = Column._create_ast( - property="string_starts_with", - copy_messages={"str": self._ast}, - fill_expr_asts={"prefix": other}, - ) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_string_starts_with) + ast.col.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.prefix, other) other = snowflake.snowpark.functions.lit(other) return Column( - snowflake.snowpark.functions.startswith(self, other)._expression, ast=ast + snowflake.snowpark.functions.startswith(self, other)._expression, ast=expr ) def endswith(self, other: ColumnOrLiteralStr) -> "Column": @@ -782,14 +829,13 @@ def endswith(self, other: ColumnOrLiteralStr) -> "Column": other: A :class:`Column` or a ``str`` that is used to check if this column ends with it. A ``str`` will be interpreted as a literal value instead of a column name. """ - ast = Column._create_ast( - property="string_ends_with", - copy_messages={"str": self._ast}, - fill_expr_asts={"suffix": other}, - ) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_string_ends_with) + ast.col.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.suffix, other) other = snowflake.snowpark.functions.lit(other) return Column( - snowflake.snowpark.functions.startswith(self, other)._expression, ast=ast + snowflake.snowpark.functions.startswith(self, other)._expression, ast=expr ) def substr( @@ -805,14 +851,14 @@ def substr( :meth:`substring` is an alias of :meth:`substr`. """ - ast = Column._create_ast( - property="string_substr", - copy_messages={"str": self._ast}, - fill_expr_asts={"pos": start_pos, "len": length}, - ) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_string_substr) + ast.col.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.pos, start_pos) + _fill_ast_with_snowpark_column_or_literal(ast.len, length) return Column( snowflake.snowpark.functions.substring(self, start_pos, length)._expression, - ast=ast, + ast=expr, ) def collate(self, collation_spec: str) -> "Column": @@ -822,12 +868,11 @@ def collate(self, collation_spec: str) -> "Column": For details, see the Snowflake documentation on `collation specifications `_. """ - ast = Column._create_ast( - property="string_collate", - copy_messages={"str": self._ast}, - assign_fields={"collation_spec": collation_spec}, - ) - return Column(Collate(self._expression, collation_spec), ast=ast) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_string_collate) + ast.col.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.collation_spec, collation_spec) + return Column(Collate(self._expression, collation_spec), ast=expr) def contains(self, string: ColumnOrName) -> "Column": """Returns true if the column contains `string` for each row. @@ -835,13 +880,12 @@ def contains(self, string: ColumnOrName) -> "Column": Args: string: the string to search for in this column. """ - ast = Column._create_ast( - property="string_contains", - copy_messages={"str": self._ast}, - fill_expr_asts={"pattern": string}, - ) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_string_contains) + ast.col.CopyFrom(self._ast) + _fill_ast_with_snowpark_column_or_literal(ast.pattern, string) return Column( - snowflake.snowpark.functions.contains(self, string)._expression, ast=ast + snowflake.snowpark.functions.contains(self, string)._expression, ast=expr ) def get_name(self) -> Optional[str]: @@ -868,13 +912,16 @@ def alias(self, alias: str) -> "Column": def name(self, alias: str, variant_is_as: bool = None) -> "Column": """Returns a new renamed Column.""" - ast = Column._create_ast( - property="sp_column_alias", - copy_messages={"col": self._ast}, - assign_fields={"name": quote_name(alias)}, - assign_opt_fields={"variant_is_as": variant_is_as}, - ) - return Column(Alias(self._expression, quote_name(alias)), ast=ast) + if self._ast is None: + expr = None + else: + expr = proto.Expr() + ast = with_src_position(expr.sp_column_alias) + ast.col.CopyFrom(self._ast) + ast.name = alias + if variant_is_as is not None: + ast.variant_is_as.value = variant_is_as + return Column(Alias(self._expression, quote_name(alias)), ast=expr) # TODO: Implement AST generation for Column.over (relies on SpWindowSpec AST generation) def over(self, window: Optional[WindowSpec] = None) -> "Column": @@ -936,36 +983,29 @@ def within_group( """ # set up result Column AST representation - prop_name = "sp_column_within_group" - ast = Column._create_ast( - property=prop_name, - copy_messages={"col": self._ast}, - assign_fields={ - "variadic": ( - len(cols) > 1 or not isinstance(cols[0], (list, tuple, set)) - ) - }, - ) + expr = proto.Expr() + ast = with_src_position(expr.sp_column_within_group) + ast.col.CopyFrom(self._ast) + ast.variadic = len(cols) > 1 or not isinstance(cols[0], (list, tuple, set)) # populate columns to order aggregate expression results by order_by_cols = [] for col in parse_positional_args_to_list(*cols): if isinstance(col, Column): - # Column instance, col, must have col._ast member - getattr(ast, prop_name).cols.append(col._ast) + assert col._ast is not None + ast.sp_column_within_group.cols.append(col._ast) order_by_cols.append(col) elif isinstance(col, str): - # create new Column instance, with new AST - col_ast = getattr(ast, prop_name).cols.add() + col_ast = ast.sp_column_within_group.cols.add() + col_ast.sp_column.name = col new_col = Column(col, ast=col_ast) - col_ast.sp_column.name = new_col.get_name() order_by_cols.append(new_col) else: raise TypeError( f"'WITHIN_GROUP' expected Column or str, got: {type(col)}" ) - return Column(WithinGroup(self._expression, order_by_cols), ast=ast) + return Column(WithinGroup(self._expression, order_by_cols), ast=expr) def _named(self) -> NamedExpression: if isinstance(self._expression, NamedExpression): @@ -973,79 +1013,6 @@ def _named(self) -> NamedExpression: else: return UnresolvedAlias(self._expression) - @staticmethod - def _create_ast( - property: Optional[str] = None, - assign_fields: Dict[str, Any] = {}, # noqa: B006 - assign_opt_fields: Dict[str, Any] = {}, # noqa: B006 - copy_messages: Dict[str, Any] = {}, # noqa: B006 - fill_expr_asts: Dict[str, ColumnOrLiteral] = {}, # noqa: B006 - ) -> proto.SpColumnExpr: - """General purpose static method to generate the AST representation for a new Snowpark Column instance - - Args: - property (str, optional): The protobuf property name of a subtype of the SpColumnExpr IR entity. Defaults to None. - assign_fields (Dict[str, Any], optional): Subtype fields with well known protobuf types that support direct assignment. Defaults to {}. - copy_messages (Dict[str, Any], optional): Subtype message fields which must be copied into (do not support assignment). Defaults to {}. - fill_expr_asts (Dict[str, ColumnOrLiteral], optional): Subtype Expr fields that must be filled explicitly from a ColumnOrLiteral type. Defaults to {}. - - Returns: - proto.SpColumnExpr: Returns fully populated SpColumnExpr AST from given arguments - """ - - ast = proto.Expr() - if property is not None: - prop_ast = getattr(ast, property) - set_src_position(prop_ast.src) - for attr, value in assign_fields.items(): - setattr_if_not_none(prop_ast, attr, value) - for attr, value in assign_opt_fields.items(): - setattr_if_not_none(getattr(prop_ast, attr), "value", value) - for attr, msg in copy_messages.items(): - if msg is None and FAIL_ON_MISSING_AST: - call_stack = inspect.stack() - curr_frame = call_stack.pop(0) - while call_stack and __file__ == curr_frame.filename: - column_api = curr_frame.function - curr_frame = call_stack.pop(0) - raise NotImplementedError( - f'Calling Column API "{column_api}" which supports AST logging, from File "{curr_frame.filename}", line {curr_frame.lineno}\n' - f"\t{curr_frame.code_context[0].strip()}\n" - f"A Snowpark API which returns a Column instance used above has not yet implemented AST logging." - ) - elif msg is not None: - getattr(prop_ast, attr).CopyFrom(msg) - for attr, other in fill_expr_asts.items(): - Column._fill_ast(getattr(prop_ast, attr), other) - return ast - - @classmethod - def _fill_ast(cls, ast: proto.Expr, value: ColumnOrLiteral) -> None: - """Copy from a Column object's AST, or copy a literal value into an AST expression. - - Args: - ast (proto.SpColumnExpr): A previously created Expr() or SpColumnExpr() IR entity intance to be filled - value (ColumnOrLiteral): The value from which to populate the provided ast parameter. - - Raises: - TypeError: An SpColumnExpr can only be populated from another SpColumnExpr or a valid Literal type - """ - if isinstance(value, cls): - if value._ast is None and FAIL_ON_MISSING_AST: - raise NotImplementedError( - f"Column({value._expression})._ast is None due to the use of a Snowpark API which does not support AST logging yet." - ) - elif value._ast is not None: - ast.CopyFrom(value._ast) - elif isinstance(value, VALID_PYTHON_TYPES_FOR_LITERAL_VALUE): - build_const_from_python_val(value, ast) - elif isinstance(value, Expression): - pass # TODO: clean this up - else: - raise TypeError( - f"{type(value)} is not a valid type for Column or literal AST." - ) - @classmethod def _to_expr(cls, expr: Union[ColumnOrLiteral, Expression]) -> Expression: """ @@ -1063,8 +1030,8 @@ def _to_expr(cls, expr: Union[ColumnOrLiteral, Expression]) -> Expression: return Literal(expr) @classmethod - def _expr(cls, e: str) -> "Column": - return cls(UnresolvedAttribute(e, is_sql_text=True)) + def _expr(cls, e: str, ast: Optional[proto.Expr] = None) -> "Column": + return cls(UnresolvedAttribute(e, is_sql_text=True), ast=ast) # Add these alias for user code migration isin = in_ @@ -1103,8 +1070,12 @@ class CaseExpr(Column): [Row(CASE_WHEN_COLUMN=1), Row(CASE_WHEN_COLUMN=2), Row(CASE_WHEN_COLUMN=3)] """ - def __init__(self, expr: CaseWhen) -> None: - super().__init__(expr) + def __init__( + self, + expr: CaseWhen, + ast: Optional[proto.Expr] = None, + ) -> None: + super().__init__(expr, ast=ast) self._branches = expr.branches def when(self, condition: ColumnOrSqlExpr, value: ColumnOrLiteral) -> "CaseExpr": diff --git a/src/snowflake/snowpark/dataframe.py b/src/snowflake/snowpark/dataframe.py index de4f5c81c8f..52fa4af131c 100644 --- a/src/snowflake/snowpark/dataframe.py +++ b/src/snowflake/snowpark/dataframe.py @@ -91,6 +91,7 @@ ) from snowflake.snowpark._internal.ast_utils import ( FAIL_ON_MISSING_AST, + fill_ast_for_column, get_symbol, set_src_position, setattr_if_not_none, @@ -960,7 +961,6 @@ def to_df(self, *names: Union[str, Iterable[str]]) -> "DataFrame": ast.variadic = is_variadic set_src_position(ast.src) - # TODO: SNOW-1507432 (currently to_df expectation test will fail due to incomplete AST logging) new_cols = [] for attr, name in zip(self._output, col_names): new_cols.append(Column(attr).alias(name)) @@ -1111,9 +1111,8 @@ def col(self, col_name: str) -> Column: col_expr_ast.sp_dataframe_col.col_name = "*" return Column(Star(self._output), ast=col_expr_ast) else: - resolved_name = self._resolve(col_name) - col_expr_ast.sp_dataframe_col.col_name = resolved_name.name - return Column(resolved_name, ast=col_expr_ast) + col_expr_ast.sp_dataframe_col.col_name = col_name + return Column(self._resolve(col_name), ast=col_expr_ast) @df_api_usage def select( @@ -1167,6 +1166,7 @@ def select( Args: *cols: A :class:`Column`, :class:`str`, :class:`table_function.TableFunctionCall`, or a list of those. Note that at most one :class:`table_function.TableFunctionCall` object is supported within a select call. + _ast_stmt: when invoked internally, supplies the AST to use for the resulting dataframe. """ exprs, is_variadic = parse_positional_args_to_list_variadic(*cols) if not exprs: @@ -1191,18 +1191,13 @@ def select( if isinstance(e, Column): names.append(e._named()) if ast: - if e._ast is None and FAIL_ON_MISSING_AST: - raise NotImplementedError( - f"Column({e._expression})._ast is None due to the use of a Snowpark API which does not support AST logging yet." - ) - elif e._ast is not None: - ast.cols.append(e._ast) + ast.cols.append(e._ast) elif isinstance(e, str): - if ast: - col_expr_ast = ast.cols.add() + col_expr_ast = ast.cols.add() if ast else proto.Expr() + fill_ast_for_column(col_expr_ast, e, None) + col = Column(e, ast=col_expr_ast) - col_expr_ast.sp_column.name = col.get_name() names.append(col._named()) elif isinstance(e, TableFunctionCall): @@ -1379,7 +1374,9 @@ def drop( return self.select(list(keep_col_names)) @df_api_usage - def filter(self, expr: ColumnOrSqlExpr) -> "DataFrame": + def filter( + self, expr: ColumnOrSqlExpr, _ast_stmt: proto.Assign = None + ) -> "DataFrame": """Filters rows based on the specified conditional expression (similar to WHERE in SQL). @@ -1396,20 +1393,24 @@ def filter(self, expr: ColumnOrSqlExpr) -> "DataFrame": Args: expr: a :class:`Column` expression or SQL text. + _ast_stmt: when invoked internally, supplies the AST to use for the resulting dataframe. :meth:`where` is an alias of :meth:`filter`. """ # AST. - stmt = self._session._ast_batch.assign() - ast = stmt.expr.sp_dataframe_filter - self.set_ast_ref(ast.df) - set_src_position(ast.src) - if isinstance(expr, Column): - pass # TODO - elif isinstance(expr, str): - ast.condition.sp_column_sql_expr.sql = expr + if _ast_stmt is None: + stmt = self._session._ast_batch.assign() + ast = stmt.expr.sp_dataframe_filter + self.set_ast_ref(ast.df) + set_src_position(ast.src) + if isinstance(expr, Column): + pass # TODO + elif isinstance(expr, str): + ast.condition.sp_column_sql_expr.sql = expr + else: + raise AssertionError(f"Unexpected type of {expr}: {type(expr)}") else: - raise AssertionError(f"Unexpected type of {expr}: {type(expr)}") + stmt = _ast_stmt if self._select_statement: return self._with_plan( @@ -1926,7 +1927,9 @@ def unpivot( return self._with_plan(unpivot_plan) @df_api_usage - def limit(self, n: int, offset: int = 0) -> "DataFrame": + def limit( + self, n: int, offset: int = 0, _ast_stmt: proto.Assign = None + ) -> "DataFrame": """Returns a new DataFrame that contains at most ``n`` rows from the current DataFrame, skipping ``offset`` rows from the beginning (similar to LIMIT and OFFSET in SQL). @@ -1935,6 +1938,7 @@ def limit(self, n: int, offset: int = 0) -> "DataFrame": Args: n: Number of rows to return. offset: Number of rows to skip before the start of the result set. The default value is 0. + _ast_stmt: Overridding AST statement. Used in cases where this function is invoked internally. Example:: @@ -1954,6 +1958,7 @@ def limit(self, n: int, offset: int = 0) -> "DataFrame": ------------- """ + # TODO: AST if self._select_statement: return self._with_plan(self._select_statement.limit(n, offset=offset)) return self._with_plan(Limit(Literal(n), Literal(offset), self._plan)) diff --git a/src/snowflake/snowpark/dataframe_na_functions.py b/src/snowflake/snowpark/dataframe_na_functions.py index e8fbcdc1a8a..cf8ab3850cf 100644 --- a/src/snowflake/snowpark/dataframe_na_functions.py +++ b/src/snowflake/snowpark/dataframe_na_functions.py @@ -10,6 +10,10 @@ from typing import Dict, Optional, Union import snowflake.snowpark +from snowflake.snowpark._internal.ast_utils import ( + build_const_from_python_val, + with_src_position, +) from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages from snowflake.snowpark._internal.telemetry import add_api_call, adjust_api_subcalls from snowflake.snowpark._internal.type_utils import ( @@ -160,6 +164,18 @@ def drop( if how is not None and how not in ["any", "all"]: raise ValueError(f"how ('{how}') should be 'any' or 'all'") + # AST. + stmt = self._df._session._ast_batch.assign() + ast = with_src_position(stmt.expr.sp_dataframe_na_drop__python) + self._df.set_ast_ref(ast.df) + ast.how = how + if thresh is not None: + ast.thresh.value = thresh + if isinstance(subset, str): + ast.subset.list.append(subset) + elif isinstance(subset, Iterable): + ast.subset.list.extend(subset) + # if subset is not provided, drop will be applied to all columns if subset is None: subset = self._df.columns @@ -179,11 +195,12 @@ def drop( if thresh < 1 or len(subset) == 0: new_df = copy.copy(self._df) add_api_call(new_df, "DataFrameNaFunctions.drop") + self._df._ast_id = stmt.var_id.bitfield1 return self._df # if thresh is greater than the number of columns, # drop a row only if all its values are null elif thresh > len(subset): - new_df = self._df.limit(0) + new_df = self._df.limit(0, _ast_stmt=stmt) adjust_api_subcalls(new_df, "DataFrameNaFunctions.drop", len_subcalls=1) return new_df else: @@ -211,7 +228,7 @@ def drop( col_counter += is_na else: col_counter = is_na - new_df = self._df.where(col_counter >= thresh) + new_df = self._df.where(col_counter >= thresh, _ast_stmt=stmt) adjust_api_subcalls(new_df, "DataFrameNaFunctions.drop", len_subcalls=1) return new_df @@ -317,6 +334,24 @@ def fill( # select col, iff(float_col = 'NaN' or float_col is null, replacement, float_col) # iff(non_float_col is null, replacement, non_float_col) from table where + # AST. + stmt = self._df._session._ast_batch.assign() + ast = with_src_position(stmt.expr.sp_dataframe_na_fill) + self._df.set_ast_ref(ast.df) + if isinstance(value, dict): + for k, v in value.items(): + # N.B. In Phase 1, error checking will be incorporated directly here. + if isinstance(k, str): + entry = ast.value_map.list.add() + entry._1 = k + build_const_from_python_val(v, entry._2) + else: + build_const_from_python_val(value, ast.value) + if isinstance(subset, str): + ast.subset.list.append(subset) + elif isinstance(subset, Iterable): + ast.subset.list.extend(subset) + if subset is None: subset = self._df.columns elif isinstance(subset, str): @@ -335,6 +370,7 @@ def fill( if not value_dict: new_df = copy.copy(self._df) add_api_call(new_df, "DataFrameNaFunctions.fill") + new_df._ast_id = stmt.var_id.bitfield1 return new_df if not all( [ @@ -387,7 +423,7 @@ def fill( # it's not in the value dict, just append the original column res_columns.append(col) - new_df = self._df.select(res_columns) + new_df = self._df.select(res_columns, _ast_stmt=stmt) adjust_api_subcalls(new_df, "DataFrameNaFunctions.fill", len_subcalls=1) return new_df @@ -487,6 +523,34 @@ def replace( See Also: :func:`DataFrame.replace` """ + # AST. + stmt = self._df._session._ast_batch.assign() + ast = with_src_position(stmt.expr.sp_dataframe_na_replace) + self._df.set_ast_ref(ast.df) + + if isinstance(to_replace, dict): + for k, v in to_replace.items(): + entry = ast.replacement_map.list.add() + build_const_from_python_val(k, entry._1) + build_const_from_python_val(v, entry._2) + elif isinstance(to_replace, Iterable): + for v in to_replace: + entry = ast.to_replace_list.list.add() + build_const_from_python_val(v, entry) + else: + build_const_from_python_val(to_replace, ast.to_replace_value) + + if isinstance(value, Iterable): + for v in value: + entry = ast.values.list.add() + build_const_from_python_val(v, entry) + else: + build_const_from_python_val(value, ast.value) + + if subset is not None: + ast.subset.list.extend(subset) + + # Validate arguments. if subset is None: subset = self._df.columns elif isinstance(subset, str): @@ -496,6 +560,7 @@ def replace( elif len(subset) == 0: new_df = copy.copy(self._df) add_api_call(new_df, "DataFrameNaFunctions.replace") + new_df._ast_id = stmt.var_id.bitfield1 return new_df if isinstance(to_replace, dict): @@ -516,6 +581,7 @@ def replace( if not replacement: new_df = copy.copy(self._df) add_api_call(new_df, "DataFrameNaFunctions.replace") + new_df._ast_id = stmt.var_id.bitfield1 return new_df if not all( [ @@ -572,6 +638,6 @@ def replace( else: res_columns.append(col) - new_df = self._df.select(res_columns) + new_df = self._df.select(res_columns, _ast_stmt=stmt) adjust_api_subcalls(new_df, "DataFrameNaFunctions.replace", len_subcalls=1) return new_df diff --git a/src/snowflake/snowpark/functions.py b/src/snowflake/snowpark/functions.py index 2bf0c679cc2..8c1d7e497d0 100644 --- a/src/snowflake/snowpark/functions.py +++ b/src/snowflake/snowpark/functions.py @@ -162,12 +162,14 @@ import typing from random import randint from types import ModuleType -from typing import Callable, Dict, List, Optional, Tuple, Union, overload +from typing import Callable, Dict, List, Optional, Set, Tuple, Union, overload import snowflake.snowpark +import snowflake.snowpark._internal.proto.ast_pb2 as proto import snowflake.snowpark.table_function from snowflake.snowpark._internal.analyzer.expression import ( CaseWhen, + Expression, FunctionExpression, ListAgg, Literal, @@ -181,6 +183,12 @@ LastValue, Lead, ) +from snowflake.snowpark._internal.ast_utils import ( + build_fn_apply, + create_ast_for_column, + snowpark_expression_to_ast, + with_src_position, +) from snowflake.snowpark._internal.type_utils import ( ColumnOrLiteral, ColumnOrLiteralStr, @@ -251,10 +259,12 @@ def col(df_alias: str, col_name: str) -> Column: def col(name1: str, name2: Optional[str] = None) -> Column: + ast = create_ast_for_column(name1, name2, "col") + if name2 is None: - return Column(name1) + return Column(name1, ast=ast) else: - return Column(name1, name2) + return Column(name1, name2, ast=ast) @overload @@ -282,10 +292,12 @@ def column(df_alias: str, col_name: str) -> Column: def column(name1: str, name2: Optional[str] = None) -> Column: + ast = create_ast_for_column(name1, name2, "column") + if name2 is None: - return Column(name1) + return Column(name1, ast=ast) else: - return Column(name1, name2) + return Column(name1, name2, ast=ast) def lit(literal: LiteralType) -> Column: @@ -312,7 +324,10 @@ def lit(literal: LiteralType) -> Column: --------------------------------------------------------------------------------------- """ - return literal if isinstance(literal, Column) else Column(Literal(literal)) + + ast = proto.Expr() + build_fn_apply(ast, "lit", literal) + return literal if isinstance(literal, Column) else Column(Literal(literal), ast=ast) def sql_expr(sql: str) -> Column: @@ -324,7 +339,16 @@ def sql_expr(sql: str) -> Column: >>> df.filter("a > 1").collect() # use SQL expression [Row(A=3, B=4)] """ - return Column._expr(sql) + + sql_expr_ast = proto.Expr() + ast = with_src_position(sql_expr_ast.sp_column_sql_expr) + ast.sql = sql + + # Capture with ApplyFn in order to restore sql_expr(...) function. + ast = proto.Expr() + build_fn_apply(ast, "sql_expr", sql_expr_ast) + + return Column._expr(sql, ast=ast) def current_session() -> Column: @@ -567,7 +591,14 @@ def bround(col: ColumnOrName, scale: Union[Column, int]) -> Column: """ col = _to_col_if_str(col, "bround") scale = _to_col_if_lit(scale, "bround") - return call_builtin("ROUND", col, scale, lit("HALF_TO_EVEN")) + + ast = proto.Expr() + build_fn_apply(ast, "bround", col, scale) + + # Note: Original Snowpark python code capitalized here. + col = call_builtin("ROUND", col, scale, lit("HALF_TO_EVEN")) + col._ast = ast + return col def convert_timezone( @@ -720,9 +751,14 @@ def count_distinct(*cols: ColumnOrName) -> Column: >>> # The result should be 2 for {[1,2],[2,3]} since the rest are either duplicate or NULL records """ + + ast = proto.Expr() + build_fn_apply(ast, "count_distinct", *cols) + cs = [_to_col_if_str(c, "count_distinct") for c in cols] return Column( - FunctionExpression("count", [c._expression for c in cs], is_distinct=True) + FunctionExpression("count", [c._expression for c in cs], is_distinct=True), + ast=ast, ) @@ -764,7 +800,9 @@ def covar_samp(column1: ColumnOrName, column2: ColumnOrName) -> Column: return builtin("covar_samp")(col1, col2) -def create_map(*cols: Union[ColumnOrName, Iterable[ColumnOrName]]) -> Column: +def create_map( + *cols: Union[ColumnOrName, List[ColumnOrName], Set[ColumnOrName]] +) -> Column: """Transforms multiple column pairs into a single map :class:`~snowflake.snowpark.Column` where each pair of columns is treated as a key-value pair in the resulting map. @@ -806,6 +844,9 @@ def create_map(*cols: Union[ColumnOrName, Iterable[ColumnOrName]]) -> Column: ----------------------- """ + + # Note: The type hint seems wrong here, hard to infer what the correct API here is. + if len(cols) == 1 and isinstance(cols[0], (list, set)): cols = cols[0] @@ -815,7 +856,16 @@ def create_map(*cols: Union[ColumnOrName, Iterable[ColumnOrName]]) -> Column: f"The 'create_map' function requires an even number of parameters but the actual number is {len(cols)}" ) - return object_construct_keep_null(*cols) + # To make Ast deterministic, sort set and convert to tuple. + if isinstance(cols, set): + cols = tuple(sorted(list(cols))) + + col = object_construct_keep_null(*cols) + + # Alias to create_map + col._ast.apply_expr.fn.builtin_fn.name = "create_map" + + return col def kurtosis(e: ColumnOrName) -> Column: @@ -1007,7 +1057,12 @@ def sum_distinct(e: ColumnOrName) -> Column: [Row(SUM( DISTINCT "N")=6)] """ c = _to_col_if_str(e, "sum_distinct") - return _call_function("sum", True, c) + col = _call_function("sum", True, c) + + # alias to keep sum_distinct + col._ast.apply_expr.fn.builtin_fn.name = "sum_distinct" + + return col def variance(e: ColumnOrName) -> Column: @@ -1520,8 +1575,17 @@ def random(seed: Optional[int] = None) -> Column: >>> df = session.sql("select 1") >>> df = df.select(random(123).alias("result")) """ + + # Create AST here to encode whether a seed was supplied by the user or not. + ast = proto.Expr() + args = (seed,) if seed is not None else () + build_fn_apply(ast, "random", *args) + s = seed if seed is not None else randint(-(2**63), 2**63 - 1) - return builtin("random")(Literal(s)) + col = builtin("random")(Literal(s)) + col._ast = ast + + return col def uniform( @@ -2496,7 +2560,13 @@ def round(e: ColumnOrName, scale: Union[ColumnOrName, int, float] = 0) -> Column if isinstance(scale, (int, float)) else _to_col_if_str(scale, "round") ) - return builtin("round")(c, scale_col) + + ast = proto.Expr() + build_fn_apply(ast, "round", e, scale) + + col = builtin("round")(c, scale_col) + col._ast = ast + return col def sign(col: ColumnOrName) -> Column: @@ -6530,6 +6600,15 @@ def when(condition: ColumnOrSqlExpr, value: ColumnOrLiteral) -> CaseExpr: >>> df.select(when(col("a") % 2 == 0, lit("even")).when(col("a") % 2 == 1, lit("odd")).otherwise(lit("unknown")).as_("ans")).collect() [Row(ANS='odd'), Row(ANS='unknown'), Row(ANS='even'), Row(ANS='odd'), Row(ANS='unknown'), Row(ANS='odd'), Row(ANS='even')] """ + + ast = proto.Expr() + build_fn_apply( + ast, + "when", + snowpark_expression_to_ast(condition), + snowpark_expression_to_ast(value), + ) + return CaseExpr( CaseWhen( [ @@ -6538,7 +6617,8 @@ def when(condition: ColumnOrSqlExpr, value: ColumnOrLiteral) -> CaseExpr: Column._to_expr(value), ) ] - ) + ), + ast=ast, ) @@ -6618,7 +6698,25 @@ def in_( """ vals = parse_positional_args_to_list(*vals) columns = [_to_col_if_str(c, "in_") for c in cols] - return Column(MultipleExpression([c._expression for c in columns])).in_(vals) + + # MultipleExpression uses _expression field from columns, which will drop the column info/its ast. + # Fix here by constructing ast based on current column expressions. + ast = proto.Expr() + for c in columns: + column_ast = ast.list_val.vs.add() + column_ast.CopyFrom(c._ast) + col = Column(MultipleExpression([c._expression for c in columns]), ast=ast).in_( + vals + ) + + # Replace ast in col with correct one. + ast = proto.Expr() + list_arg = col._ast.sp_column_in__seq.col + values_arg = col._ast.sp_column_in__seq.values[0] + build_fn_apply(ast, "in_", list_arg, values_arg) + col._ast = ast + + return col def cume_dist() -> Column: @@ -6791,8 +6889,13 @@ def lag( [Row(RESULT=None), Row(RESULT=10), Row(RESULT=1), Row(RESULT=None), Row(RESULT=1)] """ c = _to_col_if_str(e, "lag") + + ast = proto.Expr() + build_fn_apply(ast, "lag", e, default_value, offset, default_value, ignore_nulls) + return Column( - Lag(c._expression, offset, Column._to_expr(default_value), ignore_nulls) + Lag(c._expression, offset, Column._to_expr(default_value), ignore_nulls), + ast=ast, ) @@ -6823,8 +6926,13 @@ def lead( [Row(RESULT=1), Row(RESULT=3), Row(RESULT=None), Row(RESULT=3), Row(RESULT=None)] """ c = _to_col_if_str(e, "lead") + + ast = proto.Expr() + build_fn_apply(ast, "lead", e, default_value, offset, default_value, ignore_nulls) + return Column( - Lead(c._expression, offset, Column._to_expr(default_value), ignore_nulls) + Lead(c._expression, offset, Column._to_expr(default_value), ignore_nulls), + ast=ast, ) @@ -6844,7 +6952,11 @@ def last_value( [Row(COLUMN1=1, COLUMN2=10, COLUMN2_LAST=11), Row(COLUMN1=1, COLUMN2=11, COLUMN2_LAST=11), Row(COLUMN1=2, COLUMN2=20, COLUMN2_LAST=21), Row(COLUMN1=2, COLUMN2=21, COLUMN2_LAST=21)] """ c = _to_col_if_str(e, "last_value") - return Column(LastValue(c._expression, None, None, ignore_nulls)) + + ast = proto.Expr() + build_fn_apply(ast, "last_value", e, ignore_nulls) + + return Column(LastValue(c._expression, None, None, ignore_nulls), ast=ast) def first_value( @@ -6863,7 +6975,11 @@ def first_value( [Row(COLUMN1=1, COLUMN2=10, COLUMN2_FIRST=10), Row(COLUMN1=1, COLUMN2=11, COLUMN2_FIRST=10), Row(COLUMN1=2, COLUMN2=20, COLUMN2_FIRST=20), Row(COLUMN1=2, COLUMN2=21, COLUMN2_FIRST=20)] """ c = _to_col_if_str(e, "last_value") - return Column(FirstValue(c._expression, None, None, ignore_nulls)) + + ast = proto.Expr() + build_fn_apply(ast, "first_value", e, ignore_nulls) + + return Column(FirstValue(c._expression, None, None, ignore_nulls), ast=ast) def ntile(e: Union[int, ColumnOrName]) -> Column: @@ -6976,7 +7092,11 @@ def listagg(e: ColumnOrName, delimiter: str = "", is_distinct: bool = False) -> [Row(RESULT='1,2,2,3,4,5')] """ c = _to_col_if_str(e, "listagg") - return Column(ListAgg(c._expression, delimiter, is_distinct)) + + ast = proto.Expr() + build_fn_apply(ast, "listagg", e, delimiter, is_distinct) + + return Column(ListAgg(c._expression, delimiter, is_distinct), ast=ast) def when_matched( @@ -8177,7 +8297,22 @@ def _call_function( api_call_source: Optional[str] = None, is_data_generator: bool = False, ) -> Column: - expressions = [Column._to_expr(arg) for arg in parse_positional_args_to_list(*args)] + + 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_fn_apply( + ast, + name, + *tuple( + snowpark_expression_to_ast(arg) if isinstance(arg, Expression) else arg + for arg in args_list + ), + ) + + expressions = [Column._to_expr(arg) for arg in args_list] return Column( FunctionExpression( name, @@ -8185,7 +8320,8 @@ def _call_function( is_distinct=is_distinct, api_call_source=api_call_source, is_data_generator=is_data_generator, - ) + ), + ast=ast, ) diff --git a/src/snowflake/snowpark/session.py b/src/snowflake/snowpark/session.py index a6b24a0d7b6..f8c3fb015b6 100644 --- a/src/snowflake/snowpark/session.py +++ b/src/snowflake/snowpark/session.py @@ -49,6 +49,10 @@ ) from snowflake.snowpark._internal.analyzer.unary_expression import Cast from snowflake.snowpark._internal.ast import AstBatch +from snowflake.snowpark._internal.ast_utils import ( + build_const_from_python_val, + with_src_position, +) from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages from snowflake.snowpark._internal.packaging_utils import ( DEFAULT_PACKAGES, @@ -2047,7 +2051,18 @@ def sql(self, query: str, params: Optional[Sequence[Any]] = None) -> DataFrame: >>> session.sql("select * from values (?, ?), (?, ?)", params=[1, "a", 2, "b"]).sort("column1").collect() [Row(COLUMN1=1, COLUMN2='a'), Row(COLUMN1=2, COLUMN2='b')] """ - if isinstance(self._conn, MockServerConnection): + # AST. + stmt = self._ast_batch.assign() + expr = with_src_position(stmt.expr.sp_sql) + expr.query = query + if params is not None: + for p in params: + build_const_from_python_val(p, expr.params.add()) + + if ( + isinstance(self._conn, MockServerConnection) + and not self._conn.suppress_not_implemented_error + ): if self._conn.is_closed(): raise SnowparkSessionException( "Cannot perform this operation because the session has been closed.", @@ -2065,6 +2080,7 @@ def sql(self, query: str, params: Optional[Sequence[Any]] = None) -> DataFrame: from_=SelectSQL(query, analyzer=self._analyzer, params=params), analyzer=self._analyzer, ), + ast_stmt=stmt, ) else: d = DataFrame( @@ -2072,6 +2088,7 @@ def sql(self, query: str, params: Optional[Sequence[Any]] = None) -> DataFrame: self._analyzer.plan_builder.query( query, source_plan=None, params=params ), + ast_stmt=stmt, ) set_api_call_source(d, "Session.sql") return d diff --git a/tests/ast/data/DataFrame.indexers.test b/tests/ast/data/DataFrame.indexers.test new file mode 100644 index 00000000000..8b1e993d6ac --- /dev/null +++ b/tests/ast/data/DataFrame.indexers.test @@ -0,0 +1,19 @@ +## TEST CASE + +df = session.table("test_table") + +getitem = df.select(df["STR"]) + +getattr = df.select(df.STR) + +col = df.select(df.col("STR")) + +## EXPECTED OUTPUT + +res1 = session.table("test_table") + +res2 = res1.select(res1["STR"]) + +res3 = res1.select(res1["STR"]) + +res4 = res1.select(res1["STR"]) diff --git a/tests/ast/data/DataframeNaFunctions.test b/tests/ast/data/DataframeNaFunctions.test new file mode 100644 index 00000000000..f1ca567137e --- /dev/null +++ b/tests/ast/data/DataframeNaFunctions.test @@ -0,0 +1,59 @@ +## TEST CASE + +df = session.table("test_table") + +drop1 = df.na.drop() + +drop2 = df.na.drop(how="all") + +drop3 = df.na.drop(how="any", thresh=42) + +drop4 = df.na.drop(subset="STR") + +drop5 = df.na.drop(how="all", subset=["NUM", "STR"]) + +drop6 = df.na.drop(how="any", thresh=42, subset=["NUM"]) + +fill1 = df.na.fill(42) + +fill2 = df.na.fill({"NUM": 42, "STR": "abc"}) + +fill3 = df.na.fill(42, subset="NUM") + +fill4 = df.na.fill("def", subset=["STR"]) + +replace1 = df.na.replace({1: 10, "three": "trzy"}) + +replace2 = df.na.replace([1, 2], [10, 20]) + +replace3 = df.na.replace(1, 10, subset=["NUM"]) + +## EXPECTED OUTPUT + +res1 = session.table("test_table") + +res2 = res1.na.drop("any") + +res3 = res1.na.drop("all") + +res4 = res1.na.drop("any", 42) + +res5 = res1.na.drop("any", ["STR"]) + +res6 = res1.na.drop("all", ["NUM", "STR"]) + +res7 = res1.na.drop("any", 42, ["NUM"]) + +res8 = res1.na.fill(42) + +res9 = res1.na.fill({"NUM": 42, "STR": "abc"}}) + +res10 = res1.na.fill(42, ["NUM"]) + +res11 = res1.na.fill("def", ["STR"]) + +res12 = res1.na.replace({1: 10, "three": "trzy"}, None) + +res13 = res1.na.replace([1, 2], [10, 20]) + +res14 = res1.na.replace(1, 10, ["NUM"]) diff --git a/tests/ast/data/col_alias.test b/tests/ast/data/col_alias.test index 79a0f65b6f0..a0a2a7817bf 100644 --- a/tests/ast/data/col_alias.test +++ b/tests/ast/data/col_alias.test @@ -14,8 +14,8 @@ df = df.select(col("A").name("test")) res1 = session.table("test_table") -res2 = res1.select(col("A").as_("TEST")) +res2 = res1.select(col("A").as_("test")) -res3 = res2.select(col("A").alias("TEST")) +res3 = res2.select(col("A").alias("test")) -res4 = res3.select(col("A").name("TEST")) +res4 = res3.select(col("A").name("test")) diff --git a/tests/ast/data/filter.test b/tests/ast/data/filter.test deleted file mode 100644 index 2786399cc64..00000000000 --- a/tests/ast/data/filter.test +++ /dev/null @@ -1,10 +0,0 @@ -## TEST CASE - -df = session.table("test_table") -df = df.filter("STR LIKE '%e%'") - -## EXPECTED OUTPUT - -res1 = session.table("test_table") - -res2 = res1.filter("STR LIKE '%e%'") diff --git a/tests/ast/data/functions.test b/tests/ast/data/functions.test new file mode 100644 index 00000000000..48f0da035fc --- /dev/null +++ b/tests/ast/data/functions.test @@ -0,0 +1,1192 @@ +## TEST CASE + +from snowflake.snowpark.functions import * +from snowflake.snowpark.types import * + +import datetime + +df = session.table("test_table") + +df01 = df.select(col("A")) + +df02 = df.select(col("X", "A")) + +df03 = df.select(col("A", None)) + +df04 = df.select(column("A")) + +df05 = df.select(column("X", "A")) + +df06 = df.select(column("A", None)) + +df07 = df.select(lit(1), lit("1"), lit(1.0), lit(True), lit(b'snow'), lit(datetime.date(2023, 2, 2)), lit([1, 2]), lit({"snow": "flake"})) + +df08 = df.select(sql_expr("CURRENT_WAREHOUSE()")) + +df09 = df.select(current_session()) + +df10 = df.select(current_statement()) + +df11 = df.select(current_user()) + +df12 = df.select(current_version()) + +df13 = df.select(current_warehouse()) + +df14 = df.select(current_database()) + +df15 = df.select(current_role()) + +df16 = df.select(current_schema()) + +df17 = df.select(current_schemas()) + +df18 = df.select(current_region()) + +df19 = df.select(current_account()) + +df20 = df.select(current_available_roles()) + +df21 = df.select(add_months("d", 4)) + +df22 = df.select(add_months(col("A"), 4)) + +df23 = df.select(add_months(col("A"), col("A"))) + +df24 = df.select(any_value("A"), any_value(col("A"))) + +df25 = df.select(bitnot("A"), bitnot(col("A")), bitnot(e=col("A"))) + +df26 = df.select(bitshiftleft("A", col("B")), bitshiftleft("A", -10), bitshiftleft(col("B"), 42)) + +df27 = df.select(bitshiftright("A", col("B")), bitshiftright("A", -10), bitshiftright(col("B"), 42)) + +df28 = df.select(bround("A", scale=10), bround("A", 2), bround(col("A"), scale=col("B"))) + +df29 = df.select(convert_timezone("A", col("B")), convert_timezone(col("A"), "B"), convert_timezone("A", "B"), convert_timezone(col("A"), col("B")), convert_timezone("A","B",None), convert_timezone("A", "B", "A")) + +df30 = df.select(convert_timezone(lit("UTC"), col("a")), convert_timezone(lit("UTC"), col("b"), lit("Asia/Shanghai"))) + +df31 = df.select(approx_count_distinct("A"), approx_count_distinct(col("A"))) + +df32 = df.select(avg("A"), avg(col("B"))) + +df33 = df.select(corr("A", "B")) + +df34 = df.select(count("*"), count("A"), count(col("A"))) + +df35 = df.select(count_distinct(), count_distinct(col("*")), count_distinct("A", "B", "C", "D", col("E"))) + +df36 = df.select(covar_pop("A", col("B"))) + +df37 = df.select(covar_samp("A", "B")) + +df38 = df.select(create_map(["A", "B"])) + +df39 = df.select(create_map({"A", "B", "A", "B"})) + +df40 = df.select(create_map("A", "B")) + +df41 = df.select(create_map("A", "B", "C", "D")) + +df42 = df.select(kurtosis("A")) + +df43 = df.select(max("*"), max("A"), max(col("A"))) + +df44 = df.select(mean("A")) + +df45 = df.select(median("A")) + +df46 = df.select(min("A")) + +df47 = df.select(mode("A")) + +df48 = df.select(skew("A")) + +df49 = df.select(stddev("A")) + +df50 = df.select(stddev_samp("A")) + +df51 = df.select(stddev_pop("A")) + +df52 = df.select(sum("A")) + +df53 = df.select(sum_distinct("A")) + +df54 = df.select(variance("A")) + +df55 = df.select(var_samp("A")) + +df56 = df.select(var_pop("A")) + +df57 = df.select(approx_percentile("A", 0.6), approx_percentile(col("B"), 0.0)) + +df58 = df.select(approx_percentile_accumulate("A")) + +df59 = df.select(approx_percentile_estimate("A", 0.3)) + +df60 = df.select(approx_percentile_combine("A")) + +df61 = df.select(grouping("A"), grouping("A", "B")) + +df62 = df.select(coalesce(), coalesce(col("A"), lit(10))) + +df63 = df.select(equal_nan("A")) + +df64 = df.select(is_null("A")) + +df65 = df.select(negate("A")) + +df66 = df.select(not_("A")) + +df67 = df.select(random(), random(None), random(10)) + +df68 = df.select(uniform("A", "B", "A"), uniform(10, 13., col("A")), uniform(0.2, 2, 0.2)) + +df69 = df.select(seq1(0), seq1(10), seq1(-10)) + +df70 = df.select(seq2(1)) + +df71 = df.select(seq4(12)) + +df72 = df.select(seq8(324)) + +df73 = df.select(to_decimal("A", 10, 3), to_decimal(col("B"), 12, 3)) + +df74 = df.select(to_double(col("A")), to_double("A", None), to_double("A", "999.9"), to_double(col("A"), col("B"))) + +df75 = df.select(div0(0, 1), div0(1.2, 9.3), div0(10, 89.2), div0("A", 1), div0(0.2, "A"), div0(0.3, col("B"))) + +df76 = df.select(sqrt("A")) + +df77 = df.select(abs("A")) + +df78 = df.select(acos("A")) + +df79 = df.select(asin("A")) + +df80 = df.select(atan("A")) + +df81 = df.select(atan2("A", "B")) + +df82 = df.select(ceil("A")) + +df83 = df.select(cos("A")) + +df84 = df.select(cosh("A")) + +df85 = df.select(exp("A")) + +df86 = df.select(factorial("A")) + +df87 = df.select(floor("A")) + +df88 = df.select(format_number("A", col("B")), format_number("A", 10)) + +df89 = df.select(sin("A")) + +df90 = df.select(sinh("A")) + +df91 = df.select(tan("A")) + +df92 = df.select(tanh("A")) + +df93 = df.select(degrees("A")) + +df94 = df.select(radians("A")) + +df95 = df.select(md5("A")) + +df96 = df.select(sha1("A")) + +df97 = df.select(sha2(col("B"), 0), sha2("A", 224)) + +df98 = df.select(hash(lit(None), lit(10), col("A"), "B")) + +df99 = df.select(ascii("A")) + +df100 = df.select(initcap("A"), initcap("A", None), initcap("A", "B"), initcap(col("A"), lit("123"))) + +df101 = df.select(length("A")) + +df102 = df.select(lower("A")) + +df103 = df.select(lpad("A", col("B"), "B"), lpad("A", 100, "B"), lpad(col("A"), col("B"), col("B"))) + +df104 = df.select(ltrim("A"), ltrim("A", None), ltrim(col("A"), "B"), ltrim(col("A"), lit("B"))) + +df105 = df.select(rpad("A", col("B"), "B"), rpad("A", 100, "B"), rpad(col("A"), col("B"), col("B"))) + +df106 = df.select(rtrim("A"), rtrim("A", None), rtrim(col("A"), "B"), rtrim(col("A"), lit("B"))) + +df107 = df.select(repeat("A", 1), repeat(col("A"), 20), repeat("B", col("A"))) + +df108 = df.select(reverse("A")) + +df109 = df.select(soundex("A")) + +df110 = df.select(trim("A"), trim("A", None), trim(col("A"), "B"), trim(col("A"), lit("B"))) + +df111 = df = df.select(upper("A")) + +df112 = df.select(strtok_to_array("A"), strtok_to_array(col("A"), None), strtok_to_array(col("A"), col("B")), strtok_to_array("A", "B")) + +df113 = df.select(struct("A", col("A"), col("B"))) + +df114 = df.select(log("A", 10), log(col("B"), 4.3), log("A", "B")) + +df115 = df.select(pow("A", 10), pow(col("B"), 4.3), pow("A", "B")) + +df116 = df.select(round("A"), round("A", 0), round(col("B"), 4.7)) + +df117 = df.select(sign("A")) + +df118 = df.select(split("A", "B"), split(col("A"), lit("asfdg"))) + +df119 = df.select(substring("A", col("A"), col("A")), substring(col("A"), 0, 10), substring(col("A"), 20, col("B"))) + +df120 = df.select(substring_index("A", "abc", 3), substring_index(col("A"), col("B"), 2)) + +df121 = df.select(regexp_count("A", "B", col("A")), regexp_count(col("A"), col("B"), col("C"), 1, 2, "test")) + +df122 = df.select(regexp_extract("A", "B", 2)) + +df123 = df.select(regexp_replace("A", "B", "", 1, 0), regexp_replace(col("A"), col("B"), col("C"), col("D"), col("E"), col("F"), 1, "sgh", 99.9)) + +df124 = df.select(replace(col("A"), "", ""), replace("A", "B", "ahsgj")) + +df125 = df.select(charindex(col("A"), col("B")), charindex("A", "B", None), charindex("A", "B", 20), charindex("A", "B", col("C"))) + +df126 = df.select(collate(col("A"), "sp-upper")) + +df127 = df.select(collation("A")) + +df128 = df.select(concat("A", col("B"), "A"), concat()) + +df129 = df.select(concat_ws("A", col("B"), "A")) + +df130 = df.select(translate("A", "B", "B"), translate(col("A"), col("B"), lit("ashg"))) + +df131 = df.select(contains("A", "B")) + +df132 = df.select(startswith("A", "B")) + +df133 = df.select(endswith("A", "B")) + +df134 = df.select(insert(col("A"), col("B"), col("C"), "D"), insert("A", 12, 13, col("D"))) + +df135 = df.select(left("A", col("B")), left(col("A"), 10)) + +df136 = df.select(right("A", col("B")), right(col("A"), 10)) + +df137 = df.select(char("A")) + +df138 = df.select(to_char("A"), to_char(col("B"), None), to_char("A", "bcd")) + +df139 = df.select(date_format(col("A"), col("B")), date_format("A", "YYYY")) + +df140 = df.select(to_time("A"), to_time("A", "YYYY"), to_time(col("A"), col("B"))) + +df141 = df.select(to_timestamp("A"), to_timestamp("C", None), to_timestamp(col("A"), col("B"))) + +df142 = df.select(to_timestamp_ntz("A"), to_timestamp_ntz(col("A"), None), to_timestamp_ntz("A", "auto"), to_timestamp_ntz(col("A"), col("B"))) + +df143 = df.select(to_timestamp_ltz("A"), to_timestamp_ltz(col("A"), None), to_timestamp_ltz("A", "auto"), to_timestamp_ltz(col("A"), col("B"))) + +df144 = df.select(to_timestamp_tz("A"), to_timestamp_tz(col("A"), None), to_timestamp_tz("A", "auto"), to_timestamp_tz(col("A"), col("B"))) + +df145 = df.select(from_utc_timestamp("A", lit(1234)), from_utc_timestamp(col("A"), col("B"))) + +df146 = df.select(to_utc_timestamp("A", lit(1234)), to_utc_timestamp(col("A"), col("B"))) + +df147 = df.select(to_date("A"), to_date("A", col("A")), to_date(col("A"), None)) + +df148 = df.select(current_timestamp()) + +df149 = df.select(current_date()) + +df150 = df.select(current_time()) + +df151 = df.select(hour("A")) + +df152 = df.select(last_day("A"), last_day(col("A"), None), last_day(col("A"), col("B")), last_day("A", "B")) + +df153 = df.select(minute("A")) + +df154 = df.select(next_day("A", "fr"), next_day(col("A"), col("B"))) + +df155 = df.select(previous_day("A", "fr"), previous_day(col("A"), col("B"))) + +df156 = df.select(second("A")) + +df157 = df.select(month("A")) + +df158 = df.select(monthname("A")) + +df159 = df.select(quarter("A")) + +df160 = df.select(year("A")) + +df170 = df.select(sysdate()) + +df171 = df.select(months_between("A", "B"), months_between(col("A"), "B"), months_between(col("A"), col("B"))) + +df172 = df.select(to_geography("A")) + +df173 = df.select(to_geometry("A")) + +df174 = df.select(arrays_overlap("A", col("B")), arrays_overlap(col("A"), "B")) + +df175 = df.select(array_distinct("A")) + +df176 = df.select(array_intersection("A", "B"), array_intersection(col("A"), col("B")), array_intersection("A", col("B"))) + +df177 = df.select(array_except("A", "B"), array_except("A", col("B"), True), array_except("B", "A", False)) + +df178 = df.select(array_min("A")) + +df179 = df.select(array_max("A")) + +df180 = df.select(array_flatten("A")) + +df181 = df.select(array_sort("A"), array_sort("A", True), array_sort(col("A"), False, True)) + +df182 = df.select(arrays_to_object("A", "B"), arrays_to_object("A", col("A"))) + +df183 = df.select(array_generate_range("A", "B"), array_generate_range("A", col("B"), None), array_generate_range(col("A"), "B", "C")) + +df184 = df.select(sequence("A", "B"), sequence("A", col("B"), None), sequence(col("A"), "B", "C")) + +df185 = df.select(date_add("A", "B"), date_add("A", 10), date_add(col("A"), 0), date_add(col("A"), col("B"))) + +df186 = df.select(date_sub("A", "B"), date_sub("A", 10), date_sub(col("A"), 0), date_sub(col("A"), col("B"))) + +df187 = df.select(datediff("year", col("A"), "B"), datediff("month", "A", col("B"))) + +df188 = df.select(daydiff("A", "B"), daydiff(col("A"), col("B"))) + +df189 = df.select(trunc("A", "B"), trunc(col("A"), col("B")), trunc("A", 10), trunc("B", 7.9)) + +df190 = df.select(dateadd("year", "A", "B"), dateadd("year", col("A"), col("B"))) + +df191 = df.select(date_part("year", "A"), date_part("year", col("B"))) + +df192 = df.select(date_from_parts(10, 2, 1), date_from_parts(10, "A", 1), date_from_parts("A", "B", "A"), date_from_parts(10, col("A"), 1)) + +df193 = df.select(date_trunc("year", "A"), date_trunc("year", col("B"))) + +df194 = df.select(dayname("A")) + +df195 = df.select(dayofmonth("A")) + +df196 = df.select(dayofweek("A")) + +df197 = df.select(dayofyear("A")) + +df198 = df.select(is_array("A")) + +df199 = df.select(is_boolean("A")) + +df200 = df.select(is_binary("A")) + +df201 = df.select(is_char("A")) + +df202 = df.select(is_date("A")) + +df203 = df.select(is_decimal("A")) + +df204 = df.select(is_double("A")) + +df205 = df.select(is_real("A")) + +df206 = df.select(is_integer("A")) + +df207 = df.select(is_null_value("A")) + +df208 = df.select(is_object("A")) + +df209 = df.select(is_time("A")) + +df210 = df.select(is_timestamp_ltz("A")) + +df211 = df.select(is_timestamp_ntz("A")) + +df212 = df.select(is_timestamp_tz("A")) + +df213 = df.select(time_from_parts(1, 2, 3), time_from_parts("A", "B", "A"), time_from_parts(1, "A", col("B"))) + +df214 = df.select(timestamp_from_parts("A", "A"), timestamp_from_parts(col("A"), "B"), timestamp_from_parts(col("A"), col("B"))) + +df215 = df.select(timestamp_from_parts(2000, 12, 0, 12, 3, 1), timestamp_from_parts(2000, 12, 0, 12, 3, 1, None), timestamp_from_parts(2000, 12, 0, 12, 3, 1, None, None), timestamp_from_parts(2000, 12, 0, 12, 3, 1, None, "us")) + +df216 = df.select(timestamp_from_parts("year", "month", "day", "hour", "minute", "second"), timestamp_from_parts(to_date("date"), to_time("time"))) + +df217 = df.select(timestamp_ltz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_ltz_from_parts(2000, 12, 0, 12, 3, 1, None), timestamp_ltz_from_parts(2000, 12, 0, 12, 3, 1, None), timestamp_ltz_from_parts(2000, 12, 0, 12, 3, 1, 12)) + +df218 = df.select(timestamp_ntz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_ntz_from_parts(2000, 12, 0, 12, 3, 1, None), timestamp_ntz_from_parts(2000, 12, 0, 12, 3, 1, None), timestamp_ntz_from_parts(2000, 12, 0, 12, 3, 1, 12)) + +df219 = df.select(timestamp_tz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_tz_from_parts(2000, 12, 0, 12, 3, 1, None), timestamp_tz_from_parts(2000, 12, 0, 12, 3, 1, None, None), timestamp_tz_from_parts(2000, 12, 0, 12, 3, 1, None, "us")) + +df220 = df.select(weekofyear("A")) + +df221 = df.select(typeof("A")) + +df222 = df.select(check_json("A")) + +df223 = df.select(check_xml("A")) + +df224 = df.select(json_extract_path_text("A", "B"), json_extract_path_text(col("A"), col("B")), json_extract_path_text(col("A"), "B")) + +df225 = df.select(parse_json("A")) + +df226 = df.select(parse_xml("A")) + +df227 = df.select(strip_null_value("A")) + +df228 = df.select(array_agg("A", False), array_agg(col("A"), True)) + +df229 = df.select(array_append("A", lit(1)), array_append("A", "B"), array_append(col("A"), col("B"))) + +df230 = df.select(array_cat("A", lit(1)), array_cat("A", "B"), array_cat(col("A"), col("B"))) + +df231 = df.select(array_compact("A")) + +df232 = df.select(array_construct(), array_construct("A"), array_construct(lit(1), "A", col("B"))) + +df233 = df.select(array_construct_compact(), array_construct_compact("A"), array_construct_compact(lit(1), "A", col("B"))) + +df234 = df.select(array_contains("A", col("B")), array_contains("A", lit(1))) + +df235 = df.select(array_insert("A", "B", "A"), array_insert(col("A"), col("B"), col("A"))) + +df236 = df.select(array_position("A", "B"), array_position(col("A"), lit(0))) + +df237 = df.select(array_prepend("A", col("B")), array_prepend(col("A"), col("B"))) + +df238 = df.select(array_size("A")) + +df239 = df.select(array_slice("A", "B", "A"), array_slice(col("A"), col("B"), col("A"))) + +df240 = df.select(array_to_string("A", "B"), array_to_string(col("A"), col("B"))) + +df241 = df.select(array_unique_agg("A")) + +df242 = df.select(object_agg("A", "B"), object_agg("A", col("B"))) + +df243 = df.select(object_construct(), object_construct(col("k"), col("v")), object_construct("A", "B", "A", "B")) + +df244 = df.select(object_construct_keep_null(), object_construct_keep_null(col("k"), col("v")), object_construct_keep_null("A", "B", "A", "B")) + +df245 = df.select(object_delete("A", "B"), object_delete(col("A"), "k1", "k2", "k3", "k4")) + +df246 = df.select(object_insert("A", "B", "A"), object_insert(col("A"), lit(1), lit(20), "B")) + +df247 = df.select(object_pick("A", "B"), object_pick(col("A"), "k1", "k2", "k3", "k4")) + +df248 = df.select(vector_cosine_distance(col("A"), "B")) + +df249 = df.select(vector_l2_distance("A", col("B"))) + +df250 = df.select(vector_inner_product("A", "B")) + +df251 = df.select(asc("A")) + +df252 = df.select(asc_nulls_first("A")) + +df253 = df.select(asc_nulls_last("A")) + +df254 = df.select(desc("A")) + +df255 = df.select(desc_nulls_first("A")) + +df256 = df.select(desc_nulls_last("A")) + +df257 = df.select(as_array("A")) + +df258 = df.select(as_binary("A")) + +df259 = df.select(as_char("A")) + +df260 = df.select(as_varchar("A")) + +df261 = df.select(as_date("A")) + +df262 = df.select(cast("A", "int"), cast("A", LongType())) + +df263 = df.select(try_cast("A", "int"), try_cast("A", LongType())) + +df264 = df.select(as_decimal("A"), as_decimal("A", None), as_decimal("A", 10), as_decimal(col("A"), 10, 2)) + +df265 = df.select(as_number("A"), as_number("A", None), as_number("A", 10), as_number(col("A"), 10, 2)) + +df266 = df.select(as_double("A")) + +df267 = df.select(as_real("A")) + +df268 = df.select(as_integer("A")) + +df269 = df.select(as_object("A")) + +df270 = df.select(as_time("A")) + +df271 = df.select(as_timestamp_ltz("A")) + +df272 = df.select(as_timestamp_ntz("A")) + +df273 = df.select(as_timestamp_tz("A")) + +df274 = df.select(to_binary("A"), to_binary("B", "BASE64"), to_binary(col("A"), 'UTF-8')) + +df275 = df.select(to_array("A")) + +df276 = df.select(to_json("A")) + +df277 = df.select(to_object("A")) + +df278 = df.select(to_variant("A")) + +df279 = df.select(to_xml("A")) + +df280 = df.select(get_ignore_case("A", col("B"))) + +df281 = df.select(object_keys("A")) + +df282 = df.select(xmlget("A", "B"), xmlget("A", "B", 0), xmlget(col("A"), lit("123"), col("B")), xmlget("A", "B", "C")) + +df283 = df.select(get_path("A", "B")) + +df284 = df.select(get(1, 2), get("A", 2), get(3, "B"), get(col("A"), 2), get(col("A"), lit(1))) + +df285 = df.select(when(col("a") % 2 == 0, lit("even"))) + +df286 = df.select(iff(col("a") % 2 == 0, lit("even"), lit("odd"))) + +df287 = df.select(in_([]), in_([col("A"), "B", "A"]), in_([col("col1"), col("col2")], [[1, "a"], [2, "b"]])) + +df288 = df.select(cume_dist()) + +df289 = df.select(rank()) + +df290 = df.select(percent_rank()) + +df291 = df.select(dense_rank()) + +df292 = df.select(row_number()) + +df293 = df.select(lag("A"), lag(col("B")), lag("A", 1, None, None), lag("A", 1, col("B")), lag("A", 2, lit(20), True)) + +df294 = df.select(lead("A"), lead(col("B")), lead("A", 1, None, None), lead("A", 1, col("B")), lead("A", 2, lit(20), True)) + +df295 = df.select(last_value("A"), last_value("A", True), last_value(col("B"), False)) + +df296 = df.select(first_value("A"), first_value("A", True), first_value(col("B"), False)) + +df297 = df.select(ntile(10), ntile("A"), ntile(col("B"))) + +df298 = df.select(percentile_cont(0.4)) + +df299 = df.select(greatest(), greatest("A"), greatest(col("B"), "A"), greatest("A", "B", "C", "D", "E", "F")) + +df300 = df.select(least(), least("A"), least(col("B"), "A"), least("A", "B", "C", "D", "E", "F")) + +df301 = df.select(listagg("A"), listagg(col("B")), listagg("A", ","), listagg("A", "|", True)) + +df302 = df.select(call_udf("name"), call_udf("test", col("A"), lit(10))) + +df303 = df.select(unix_timestamp("A"), unix_timestamp("A", None), unix_timestamp(col("B"), lit("YYYY"))) + +df304 = df.select(locate("needle", col("expr")), locate("needle", lit("test string"), 2)) + +## EXPECTED OUTPUT + +res1 = session.table("test_table") + +res2 = res1.select(col("A")) + +res3 = res1.select(col("X", "A")) + +res4 = res1.select(col("A")) + +res5 = res1.select(column("A")) + +res6 = res1.select(column("X", "A")) + +res7 = res1.select(column("A")) + +res8 = res1.select(lit(1), lit("1"), lit(1.0), lit(True), lit(bytes("snow", "utf-8")), lit(datetime.date(2023, 2, 2)), lit([1, 2]), lit({"snow": "flake"})) + +res9 = res1.select(sql_expr("CURRENT_WAREHOUSE()")) + +res10 = res1.select(current_session()) + +res11 = res1.select(current_statement()) + +res12 = res1.select(current_user()) + +res13 = res1.select(current_version()) + +res14 = res1.select(current_warehouse()) + +res15 = res1.select(current_database()) + +res16 = res1.select(current_role()) + +res17 = res1.select(current_schema()) + +res18 = res1.select(current_schemas()) + +res19 = res1.select(current_region()) + +res20 = res1.select(current_account()) + +res21 = res1.select(current_available_roles()) + +res22 = res1.select(add_months(col("d"), 4)) + +res23 = res1.select(add_months(col("A"), 4)) + +res24 = res1.select(add_months(col("A"), col("A"))) + +res25 = res1.select(any_value(col("A")), any_value(col("A"))) + +res26 = res1.select(bitnot(col("A")), bitnot(col("A")), bitnot(col("A"))) + +res27 = res1.select(bitshiftleft(col("A"), col("B")), bitshiftleft(col("A"), -10), bitshiftleft(col("B"), 42)) + +res28 = res1.select(bitshiftright(col("A"), col("B")), bitshiftright(col("A"), -10), bitshiftright(col("B"), 42)) + +res29 = res1.select(bround(col("A"), 10), bround(col("A"), 2), bround(col("A"), col("B"))) + +res30 = res1.select(convert_timezone(col("A"), col("B")), convert_timezone(col("A"), col("B")), convert_timezone(col("A"), col("B")), convert_timezone(col("A"), col("B")), convert_timezone(col("A"), col("B")), convert_timezone(col("A"), col("A"), col("B"))) + +res31 = res1.select(convert_timezone(lit("UTC"), col("a")), convert_timezone(lit("Asia/Shanghai"), lit("UTC"), col("b"))) + +res32 = res1.select(approx_count_distinct(col("A")), approx_count_distinct(col("A"))) + +res33 = res1.select(avg(col("A")), avg(col("B"))) + +res34 = res1.select(corr(col("A"), col("B"))) + +res35 = res1.select(count(1), count("\"A\""), count("\"A\"")) + +res36 = res1.select(count_distinct(), count_distinct("*"), count_distinct("A", "B", "C", "D", col("E"))) + +res37 = res1.select(covar_pop(col("A"), col("B"))) + +res38 = res1.select(covar_samp(col("A"), col("B"))) + +res39 = res1.select(create_map(col("A"), col("B"))) + +res40 = res1.select(create_map(col("A"), col("B"))) + +res41 = res1.select(create_map(col("A"), col("B"))) + +res42 = res1.select(create_map(col("A"), col("B"), col("C"), col("D"))) + +res43 = res1.select(kurtosis(col("A"))) + +res44 = res1.select(max("*"), max(col("A")), max(col("A"))) + +res45 = res1.select(avg(col("A"))) + +res46 = res1.select(median(col("A"))) + +res47 = res1.select(min(col("A"))) + +res48 = res1.select(mode(col("A"))) + +res49 = res1.select(skew(col("A"))) + +res50 = res1.select(stddev(col("A"))) + +res51 = res1.select(stddev_samp(col("A"))) + +res52 = res1.select(stddev_pop(col("A"))) + +res53 = res1.select(sum(col("A"))) + +res54 = res1.select(sum_distinct(col("A"))) + +res55 = res1.select(variance(col("A"))) + +res56 = res1.select(variance(col("A"))) + +res57 = res1.select(var_pop(col("A"))) + +res58 = res1.select(approx_percentile(col("A"), lit(0.6)), approx_percentile(col("B"), lit(0.0))) + +res59 = res1.select(approx_percentile_accumulate(col("A"))) + +res60 = res1.select(approx_percentile_estimate(col("A"), lit(0.3))) + +res61 = res1.select(approx_percentile_combine(col("A"))) + +res62 = res1.select(grouping(col("A")), grouping(col("A"), col("B"))) + +res63 = res1.select(coalesce(), coalesce(col("A"), lit(10))) + +res64 = res1.select(col("A").equal_nan()) + +res65 = res1.select(col("A").is_null()) + +res66 = res1.select(-col("A")) + +res67 = res1.select(~col("A")) + +res68 = res1.select(random(), random(), random(10)) + +res69 = res1.select(uniform(col("A"), col("B"), col("A")), uniform(lit(10), lit(13.0).cast(FloatType()), col("A")), uniform(lit(0.2).cast(FloatType()), lit(2), lit(0.2))) + +res70 = res1.select(seq1(0), seq1(10), seq1(-10)) + +res71 = res1.select(seq2(1)) + +res72 = res1.select(seq4(12)) + +res73 = res1.select(seq8(324)) + +res74 = res1.select(to_decimal(col("A"), lit(10), lit(3)), to_decimal(col("B"), lit(12), lit(3))) + +res75 = res1.select(to_double(col("A")), to_double(col("A")), to_double(col("A"), "999.9"), to_double(col("A"), col("B"))) + +res76 = res1.select(div0(lit(0), lit(1)), div0(lit(1.2), lit(9.3)), div0(lit(10), lit(89.2)), div0(col("A"), lit(1)), div0(lit(0.2), col("A")), div0(lit(0.3), col("B"))) + +res77 = res1.select(sqrt(col("A"))) + +res78 = res1.select(abs(col("A"))) + +res79 = res1.select(acos(col("A"))) + +res80 = res1.select(asin(col("A"))) + +res81 = res1.select(atan(col("A"))) + +res82 = res1.select(atan2(col("A"), col("B"))) + +res83 = res1.select(ceil(col("A"))) + +res84 = res1.select(cos(col("A"))) + +res85 = res1.select(cosh(col("A"))) + +res86 = res1.select(exp(col("A"))) + +res87 = res1.select(factorial(col("A"))) + +res88 = res1.select(floor(col("A"))) + +res89 = res1.select(bround(col("A"), col("B")).cast(StringType()), bround(col("A"), 10).cast(StringType())) + +res90 = res1.select(sin(col("A"))) + +res91 = res1.select(sinh(col("A"))) + +res92 = res1.select(tan(col("A"))) + +res93 = res1.select(tanh(col("A"))) + +res94 = res1.select(degrees(col("A"))) + +res95 = res1.select(radians(col("A"))) + +res96 = res1.select(md5(col("A"))) + +res97 = res1.select(sha1(col("A"))) + +res98 = res1.select(sha2(col("B"), 0), sha2(col("A"), 224)) + +res99 = res1.select(hash(lit(None), lit(10), col("A"), col("B"))) + +res100 = res1.select(ascii(col("A"))) + +res101 = res1.select(initcap(col("A")), initcap(col("A")), initcap(col("A"), col("B")), initcap(col("A"), lit("123"))) + +res102 = res1.select(length(col("A"))) + +res103 = res1.select(lower(col("A"))) + +res104 = res1.select(lpad(col("A"), col("B"), col("B")), lpad(col("A"), lit(100), col("B")), lpad(col("A"), col("B"), col("B"))) + +res105 = res1.select(ltrim(col("A")), ltrim(col("A")), ltrim(col("A"), col("B")), ltrim(col("A"), lit("B"))) + +res106 = res1.select(rpad(col("A"), col("B"), col("B")), rpad(col("A"), lit(100), col("B")), rpad(col("A"), col("B"), col("B"))) + +res107 = res1.select(rtrim(col("A")), rtrim(col("A")), rtrim(col("A"), col("B")), rtrim(col("A"), lit("B"))) + +res108 = res1.select(repeat(col("A"), lit(1)), repeat(col("A"), lit(20)), repeat(col("B"), col("A"))) + +res109 = res1.select(reverse(col("A"))) + +res110 = res1.select(soundex(col("A"))) + +res111 = res1.select(trim(col("A")), trim(col("A")), trim(col("A"), col("B")), trim(col("A"), lit("B"))) + +res112 = res1.select(upper(col("A"))) + +res113 = res112.select(strtok_to_array(col("A")), strtok_to_array(col("A")), strtok_to_array(col("A"), col("B")), strtok_to_array(col("A"), col("B"))) + +res114 = res112.select(object_construct_keep_null(lit("A"), col("A"), lit("A"), col("A"), lit("B"), col("B"))) + +res115 = res112.select(log(col("A"), lit(10)), log(col("B"), lit(4.3)), log(col("A"), col("B"))) + +res116 = res112.select(pow(col("A"), lit(10)), pow(col("B"), lit(4.3)), pow(col("A"), col("B"))) + +res117 = res112.select(round("A", 0), round("A", 0), round(col("B"), 4.7)) + +res118 = res112.select(sign(col("A"))) + +res119 = res112.select(split(col("A"), col("B")), split(col("A"), lit("asfdg"))) + +res120 = res112.select(substring(col("A"), col("A"), col("A")), substring(col("A"), lit(0), lit(10)), substring(col("A"), lit(20), col("B"))) + +res121 = res112.select(array_to_string(array_slice(strtok_to_array(col("A"), "abc"), 0, 3), "abc"), array_to_string(array_slice(strtok_to_array(col("A"), col("B")), 0, 2), col("B"))) + +res122 = res112.select(regexp_count(col("A"), lit("B"), col("A")), regexp_count(col("A"), col("B"), col("C"), lit(1), lit(2), lit("test"))) + +res123 = res112.select(coalesce(regexp_substr(col("A"), "B", lit(1), lit(1), lit("e"), 2), lit(""))) + +res124 = res112.select(regexp_replace(col("A"), lit("B"), lit(""), lit(1), lit(0)), regexp_replace(col("A"), col("B"), col("C"), col("D"), col("E"), col("F"), lit(1), lit("sgh"), lit(99.9))) + +res125 = res112.select(replace(col("A"), lit(""), lit("")), replace(col("A"), lit("B"), lit("ahsgj"))) + +res126 = res112.select(charindex(col("A"), col("B")), charindex(col("A"), col("B")), charindex(col("A"), col("B"), lit(20)), charindex(col("A"), col("B"), col("C"))) + +res127 = res112.select(collate(col("A"), "sp-upper")) + +res128 = res112.select(collation(col("A"))) + +res129 = res112.select(concat(col("A"), col("B"), col("A")), concat()) + +res130 = res112.select(concat_ws(col("A"), col("B"), col("A"))) + +res131 = res112.select(translate(col("A"), col("B"), col("B")), translate(col("A"), col("B"), lit("ashg"))) + +res132 = res112.select(contains(col("A"), col("B"))) + +res133 = res112.select(startswith(col("A"), col("B"))) + +res134 = res112.select(endswith(col("A"), col("B"))) + +res135 = res112.select(insert(col("A"), col("B"), col("C"), col("D")), insert(col("A"), lit(12), lit(13), col("D"))) + +res136 = res112.select(left(col("A"), col("B")), left(col("A"), lit(10))) + +res137 = res112.select(right(col("A"), col("B")), right(col("A"), lit(10))) + +res138 = res112.select(char(col("A"))) + +res139 = res112.select(to_char(col("A")), to_char(col("B")), to_char(col("A"), lit("bcd"))) + +res140 = res112.select(to_char(col("A").try_cast(TimestampType()), col("B")), to_char(col("A").try_cast(TimestampType()), lit("YYYY"))) + +res141 = res112.select(to_time(col("A")), to_time(col("A"), "YYYY"), to_time(col("A"), col("B"))) + +res142 = res112.select(to_timestamp(col("A")), to_timestamp(col("C")), to_timestamp(col("A"), col("B"))) + +res143 = res112.select(to_timestamp_ntz(col("A")), to_timestamp_ntz(col("A")), to_timestamp_ntz(col("A"), "auto"), to_timestamp_ntz(col("A"), col("B"))) + +res144 = res112.select(to_timestamp_ltz(col("A")), to_timestamp_ltz(col("A")), to_timestamp_ltz(col("A"), "auto"), to_timestamp_ltz(col("A"), col("B"))) + +res145 = res112.select(to_timestamp_tz(col("A")), to_timestamp_tz(col("A")), to_timestamp_tz(col("A"), "auto"), to_timestamp_tz(col("A"), col("B"))) + +res146 = res112.select(convert_timezone("UTC", lit(1234), col("A")), convert_timezone("UTC", col("B"), col("A"))) + +res147 = res112.select(convert_timezone(lit(1234), "UTC", col("A")), convert_timezone(col("B"), "UTC", col("A"))) + +res148 = res112.select(to_date(col("A")), to_date(col("A"), col("A")), to_date(col("A"))) + +res149 = res112.select(current_timestamp()) + +res150 = res112.select(current_date()) + +res151 = res112.select(current_time()) + +res152 = res112.select(hour(col("A"))) + +res153 = res112.select(last_day(col("A")), last_day(col("A")), last_day(col("A"), col("B")), last_day(col("A"), col("B"))) + +res154 = res112.select(minute(col("A"))) + +res155 = res112.select(next_day(col("A"), "fr"), next_day(col("A"), "\"B\"")) + +res156 = res112.select(previous_day(col("A"), "fr"), previous_day(col("A"), "\"B\"")) + +res157 = res112.select(second(col("A"))) + +res158 = res112.select(month(col("A"))) + +res159 = res112.select(monthname(col("A"))) + +res160 = res112.select(quarter(col("A"))) + +res161 = res112.select(year(col("A"))) + +res162 = res112.select(sysdate()) + +res163 = res112.select(months_between(col("A"), col("B")), months_between(col("A"), col("B")), months_between(col("A"), col("B"))) + +res164 = res112.select(to_geography(col("A"))) + +res165 = res112.select(to_geometry(col("A"))) + +res166 = res112.select(arrays_overlap(col("A"), col("B")), arrays_overlap(col("A"), col("B"))) + +res167 = res112.select(array_distinct(col("A"))) + +res168 = res112.select(array_intersection(col("A"), col("B")), array_intersection(col("A"), col("B")), array_intersection(col("A"), col("B"))) + +res169 = res112.select(array_except(col("A"), col("B")), array_except(col("A"), col("B")), array_except(array_distinct(col("B")), array_distinct(col("A")))) + +res170 = res112.select(array_min(col("A"))) + +res171 = res112.select(array_max(col("A"))) + +res172 = res112.select(array_flatten(col("A"))) + +res173 = res112.select(array_sort(col("A"), lit(True), lit(False)), array_sort(col("A"), lit(True), lit(False)), array_sort(col("A"), lit(False), lit(True))) + +res174 = res112.select(arrays_to_object(col("A"), col("B")), arrays_to_object(col("A"), col("A"))) + +res175 = res112.select(array_generate_range(col("A"), col("B")), array_generate_range(col("A"), col("B")), array_generate_range(col("A"), col("B"), col("C"))) + +res176 = res112.select(array_generate_range(col("A"), col("B") + iff(sign(col("B") - col("A")) > 0, 1, -1), iff(sign(col("B") - col("A")) > 0, 1, -1)), array_generate_range(col("A"), col("B") + iff(sign(col("B") - col("A")) > 0, 1, -1), iff(sign(col("B") - col("A")) > 0, 1, -1)), array_generate_range(col("A"), col("B") + iff(sign(col("C")) > 0, 1, -1), col("C"))) + +res177 = res112.select(dateadd("day", col("B"), col("A")), dateadd("day", lit(10), col("A")), dateadd("day", lit(0), col("A")), dateadd("day", col("B"), col("A"))) + +res178 = res112.select(dateadd("day", -1 * col("B"), col("A")), dateadd("day", -1 * lit(10), col("A")), dateadd("day", -1 * lit(0), col("A")), dateadd("day", -1 * col("B"), col("A"))) + +res179 = res112.select(datediff("year", col("A"), col("B")), datediff("month", col("A"), col("B"))) + +res180 = res112.select(datediff(lit("day"), col("B"), col("A")), datediff(lit("day"), col("B"), col("A"))) + +res181 = res112.select(trunc(col("A"), col("B")), trunc(col("A"), col("B")), trunc(col("A"), lit(10)), trunc(col("B"), lit(7.9))) + +res182 = res112.select(dateadd("year", col("A"), col("B")), dateadd("year", col("A"), col("B"))) + +res183 = res112.select(date_part("year", col("A")), date_part("year", col("B"))) + +res184 = res112.select(date_from_parts(10, 2, 1), date_from_parts(10, col("A"), 1), date_from_parts(col("A"), col("B"), col("A")), date_from_parts(10, col("A"), 1)) + +res185 = res112.select(date_trunc("year", col("A")), date_trunc("year", col("B"))) + +res186 = res112.select(dayname(col("A"))) + +res187 = res112.select(dayofmonth(col("A"))) + +res188 = res112.select(dayofweek(col("A"))) + +res189 = res112.select(dayofyear(col("A"))) + +res190 = res112.select(is_array(col("A"))) + +res191 = res112.select(is_boolean(col("A"))) + +res192 = res112.select(is_binary(col("A"))) + +res193 = res112.select(is_char(col("A"))) + +res194 = res112.select(is_date(col("A"))) + +res195 = res112.select(is_decimal(col("A"))) + +res196 = res112.select(is_double(col("A"))) + +res197 = res112.select(is_real(col("A"))) + +res198 = res112.select(is_integer(col("A"))) + +res199 = res112.select(is_null_value(col("A"))) + +res200 = res112.select(is_object(col("A"))) + +res201 = res112.select(is_time(col("A"))) + +res202 = res112.select(is_timestamp_ltz(col("A"))) + +res203 = res112.select(is_timestamp_ntz(col("A"))) + +res204 = res112.select(is_timestamp_tz(col("A"))) + +res205 = res112.select(time_from_parts(1, 2, 3), time_from_parts(col("A"), col("B"), col("A")), time_from_parts(1, col("A"), col("B"))) + +res206 = res112.select(timestamp_from_parts(col("A"), col("A")), timestamp_from_parts(col("A"), col("B")), timestamp_from_parts(col("A"), col("B"))) + +res207 = res112.select(timestamp_from_parts(2000, 12, 0, 12, 3, 1), timestamp_from_parts(2000, 12, 0, 12, 3, 1), timestamp_from_parts(2000, 12, 0, 12, 3, 1), timestamp_from_parts(2000, 12, 0, 12, 3, 1, lit(0), "us")) + +res208 = res112.select(timestamp_from_parts(col("year"), col("month"), col("day"), col("hour"), col("minute"), col("second")), timestamp_from_parts(to_date(col("date")), to_time(col("time")))) + +res209 = res112.select(timestamp_ltz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_ltz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_ltz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_ltz_from_parts(2000, 12, 0, 12, 3, 1, 12)) + +res210 = res112.select(timestamp_ntz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_ntz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_ntz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_ntz_from_parts(2000, 12, 0, 12, 3, 1, 12)) + +res211 = res112.select(timestamp_tz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_tz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_tz_from_parts(2000, 12, 0, 12, 3, 1), timestamp_tz_from_parts(2000, 12, 0, 12, 3, 1, lit(0), "us")) + +res212 = res112.select(weekofyear(col("A"))) + +res213 = res112.select(typeof(col("A"))) + +res214 = res112.select(check_json(col("A"))) + +res215 = res112.select(check_xml(col("A"))) + +res216 = res112.select(json_extract_path_text(col("A"), col("B")), json_extract_path_text(col("A"), col("B")), json_extract_path_text(col("A"), col("B"))) + +res217 = res112.select(parse_json(col("A"))) + +res218 = res112.select(parse_xml(col("A"))) + +res219 = res112.select(strip_null_value(col("A"))) + +res220 = res112.select(array_agg(col("A")), array_agg(col("A"))) + +res221 = res112.select(array_append(col("A"), lit(1)), array_append(col("A"), col("B")), array_append(col("A"), col("B"))) + +res222 = res112.select(array_cat(col("A"), lit(1)), array_cat(col("A"), col("B")), array_cat(col("A"), col("B"))) + +res223 = res112.select(array_compact(col("A"))) + +res224 = res112.select(array_construct(), array_construct(col("A")), array_construct(lit(1), col("A"), col("B"))) + +res225 = res112.select(array_construct_compact(), array_construct_compact(col("A")), array_construct_compact(lit(1), col("A"), col("B"))) + +res226 = res112.select(array_contains(col("A"), col("B")), array_contains(col("A"), lit(1))) + +res227 = res112.select(array_insert(col("A"), col("B"), col("A")), array_insert(col("A"), col("B"), col("A"))) + +res228 = res112.select(array_position(col("A"), col("B")), array_position(col("A"), lit(0))) + +res229 = res112.select(array_prepend(col("A"), col("B")), array_prepend(col("A"), col("B"))) + +res230 = res112.select(array_size(col("A"))) + +res231 = res112.select(array_slice(col("A"), col("B"), col("A")), array_slice(col("A"), col("B"), col("A"))) + +res232 = res112.select(array_to_string(col("A"), col("B")), array_to_string(col("A"), col("B"))) + +res233 = res112.select(array_unique_agg(col("A"))) + +res234 = res112.select(object_agg(col("A"), col("B")), object_agg(col("A"), col("B"))) + +res235 = res112.select(object_construct(), object_construct(col("k"), col("v")), object_construct(col("A"), col("B"), col("A"), col("B"))) + +res236 = res112.select(object_construct_keep_null(), object_construct_keep_null(col("k"), col("v")), object_construct_keep_null(col("A"), col("B"), col("A"), col("B"))) + +res237 = res112.select(object_delete(col("A"), col("B")), object_delete(col("A"), col("k1"), col("k2"), col("k3"), col("k4"))) + +res238 = res112.select(object_insert(col("A"), col("B"), col("A")), object_insert(col("A"), lit(1), lit(20), col("B"))) + +res239 = res112.select(object_pick(col("A"), col("B")), object_pick(col("A"), col("k1"), col("k2"), col("k3"), col("k4"))) + +res240 = res112.select(vector_cosine_distance(col("A"), col("B"))) + +res241 = res112.select(vector_l2_distance(col("A"), col("B"))) + +res242 = res112.select(vector_inner_product(col("A"), col("B"))) + +res243 = res112.select(col("A").asc()) + +res244 = res112.select(col("A").asc_nulls_first()) + +res245 = res112.select(col("A").asc_nulls_last()) + +res246 = res112.select(col("A").desc()) + +res247 = res112.select(col("A").desc_nulls_first()) + +res248 = res112.select(col("A").desc_nulls_last()) + +res249 = res112.select(as_array(col("A"))) + +res250 = res112.select(as_binary(col("A"))) + +res251 = res112.select(as_char(col("A"))) + +res252 = res112.select(as_varchar(col("A"))) + +res253 = res112.select(as_date(col("A"))) + +res254 = res112.select(col("A").cast(IntegerType()), col("A").cast(LongType())) + +res255 = res112.select(col("A").try_cast(IntegerType()), col("A").try_cast(LongType())) + +res256 = res112.select(as_decimal(col("A")), as_decimal(col("A")), as_decimal(col("A"), lit(10)), as_decimal(col("A"), lit(10), lit(2))) + +res257 = res112.select(as_number(col("A")), as_number(col("A")), as_number(col("A"), lit(10)), as_number(col("A"), lit(10), lit(2))) + +res258 = res112.select(as_double(col("A"))) + +res259 = res112.select(as_real(col("A"))) + +res260 = res112.select(as_integer(col("A"))) + +res261 = res112.select(as_object(col("A"))) + +res262 = res112.select(as_time(col("A"))) + +res263 = res112.select(as_timestamp_ltz(col("A"))) + +res264 = res112.select(as_timestamp_ntz(col("A"))) + +res265 = res112.select(as_timestamp_tz(col("A"))) + +res266 = res112.select(to_binary(col("A")), to_binary(col("B"), "BASE64"), to_binary(col("A"), "UTF-8")) + +res267 = res112.select(to_array(col("A"))) + +res268 = res112.select(to_json(col("A"))) + +res269 = res112.select(to_object(col("A"))) + +res270 = res112.select(to_variant(col("A"))) + +res271 = res112.select(to_xml(col("A"))) + +res272 = res112.select(get_ignore_case(col("A"), col("B"))) + +res273 = res112.select(object_keys(col("A"))) + +res274 = res112.select(xmlget(col("A"), col("B"), 0), xmlget(col("A"), col("B"), 0), xmlget(col("A"), lit("123"), col("B")), xmlget(col("A"), col("B"), col("C"))) + +res275 = res112.select(get_path(col("A"), col("B"))) + +res276 = res112.select(get(1, 2), get(col("A"), 2), get(3, col("B")), get(col("A"), 2), get(col("A"), lit(1))) + +res277 = res112.select(when(col("a") % 2 == 0, lit("even"))) + +res278 = res112.select(iff(col("a") % 2 == 0, lit("even"), lit("odd"))) + +res279 = res112.select(in_(Add a handler for Empty$ in Unparser.expr(), Add a handler for Empty$ in Unparser.expr()), in_([col("A"), col("B"), col("A")], Add a handler for Empty$ in Unparser.expr()), in_([col("col1"), col("col2")], [[1, "a"], [2, "b"]])) + +res280 = res112.select(cume_dist()) + +res281 = res112.select(rank()) + +res282 = res112.select(percent_rank()) + +res283 = res112.select(dense_rank()) + +res284 = res112.select(row_number()) + +res285 = res112.select(lag("A", None, 1, None, False), lag(col("B"), None, 1, None, False), lag("A", None, 1, None, None), lag("A", col("B"), 1, col("B"), False), lag("A", lit(20), 2, lit(20), True)) + +res286 = res112.select(lead("A", None, 1, None, False), lead(col("B"), None, 1, None, False), lead("A", None, 1, None, None), lead("A", col("B"), 1, col("B"), False), lead("A", lit(20), 2, lit(20), True)) + +res287 = res112.select(last_value("A", False), last_value("A", True), last_value(col("B"), False)) + +res288 = res112.select(first_value("A", False), first_value("A", True), first_value(col("B"), False)) + +res289 = res112.select(ntile(10), ntile(col("A")), ntile(col("B"))) + +res290 = res112.select(percentile_cont(0.4)) + +res291 = res112.select(greatest(), greatest(col("A")), greatest(col("B"), col("A")), greatest(col("A"), col("B"), col("C"), col("D"), col("E"), col("F"))) + +res292 = res112.select(least(), least(col("A")), least(col("B"), col("A")), least(col("A"), col("B"), col("C"), col("D"), col("E"), col("F"))) + +res293 = res112.select(listagg("A", "", False), listagg(col("B"), "", False), listagg("A", ",", False), listagg("A", "|", True)) + +res294 = res112.select(name(), test(col("A"), lit(10))) + +res295 = res112.select(date_part("epoch_second", to_timestamp(col("A"))), date_part("epoch_second", to_timestamp(col("A"))), date_part("epoch_second", to_timestamp(col("B"), lit("YYYY")))) + +res296 = res112.select(charindex(lit("needle"), col("expr"), lit(1)), charindex(lit("needle"), lit("test string"), lit(2))) diff --git a/tests/ast/data/session.sql.test b/tests/ast/data/session.sql.test new file mode 100644 index 00000000000..4adf6f9dc6c --- /dev/null +++ b/tests/ast/data/session.sql.test @@ -0,0 +1,15 @@ +## TEST CASE + +df = session.sql("select 42") + +df2 = session.sql("select * from values (?, ?), (?, ?)", params=[1, "a", 2, "b"]) + +df3 = session.sql("select 42", []) + +## EXPECTED OUTPUT + +res1 = session.sql("select 42") + +res2 = session.sql("select * from values (?, ?), (?, ?)", [1, "a", 2, "b"]) + +res3 = session.sql("select 42") diff --git a/tests/ast/test_ast_driver.py b/tests/ast/test_ast_driver.py index 3dc249e0ebe..01eb31d3b79 100644 --- a/tests/ast/test_ast_driver.py +++ b/tests/ast/test_ast_driver.py @@ -77,7 +77,9 @@ def render(ast_base64: str) -> str: ], capture_output=True, text=True, + check=True, ) + return res.stdout @@ -104,6 +106,9 @@ def run_test(session, test_source): # Retrieve the AST corresponding to the test. (_, result) = session._ast_batch.flush() """ + # We don't care about the results, and also want to test some APIs that can't be mocked. This suppresses an error + # that would otherwise be thrown. + session._conn.suppress_not_implemented_error = True locals = {"session": session} exec(source, locals) base64 = locals["result"] From 8b31ec66eaab0e49970bbff161f46a6a787a2ffd Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Fri, 12 Jul 2024 10:33:42 -0700 Subject: [PATCH 08/10] update ast_pb2 --- .../snowpark/_internal/proto/ast_pb2.py | 1175 +++++++++-------- 1 file changed, 594 insertions(+), 581 deletions(-) diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index 830515fa2a8..4f2c36ab56e 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -1,11 +1,17 @@ -# -*- coding: utf-8 -*- +# +# Copyright (c) 2012-2024 Snowflake Computing Inc. All rights reserved. +# + # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: proto/ast.proto +# source: Snowpark/proto/ast.proto """Generated protocol buffer code.""" +from google.protobuf import ( + descriptor as _descriptor, + descriptor_pool as _descriptor_pool, + symbol_database as _symbol_database, +) from google.protobuf.internal import builder as _builder -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import symbol_database as _symbol_database + # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -13,583 +19,590 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.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\"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double\"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\"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t\"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03\"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12\"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value\"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\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\"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr\"\x9f\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\x42\t\n\x07variant\"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12\"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12\"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant\"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n\"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n\"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant\"Z\n\x13SpWindowSpecOrderBy\x12\"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr\"^\n\x17SpWindowSpecPartitionBy\x12\"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr\"Z\n\x18SpWindowSpecRangeBetween\x12\"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\"Y\n\x17SpWindowSpecRowsBetween\x12\"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08\"\"\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08\";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03\"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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\"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant\"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03\"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04\"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt\"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03\"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone\"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone\"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr\"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr\">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal\"8\n\tBuiltinFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x8a\x01\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12*\n\nnamed_args\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t\"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t\"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t\"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr\"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr\"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr\"\xc5J\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\x31\n\x14trait_sp_column_expr\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x04 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x05 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x07 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x08 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\t \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\n \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0b \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0c \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12&\n\x0etrait_unary_op\x18\r \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0e \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x0f \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x10 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x11 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x12 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x13 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x14 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x15 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x16 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x17 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x18 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12\"\n\tcast_expr\x18\x19 \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1a \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1b \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1c \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1d \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1e \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18\x1f \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. \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18/ \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x30 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x31 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x32 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x33 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x34 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x35 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x36 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x37 \x01(\x0b\x32\t.ast.PyFnH\x00\x12-\n\x0fpython_date_val\x18\x38 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x39 \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\x0fsnowflake_sproc\x18> \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18? \x01(\x0b\x32\x11.ast.SnowflakeUdfH\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+\n\x0esp_column_cast\x18\x46 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18G \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18H \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18I \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18J \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18K \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18L \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18M \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18N \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18O \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18P \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18Q \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18R \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18S \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18T \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18U \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18V \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18W \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18X \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18Y \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18Z \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_apply\x18^ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18_ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18` \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x61 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x62 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x63 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x64 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x65 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x66 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18g \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18h \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18i \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18j \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18k \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18l \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18m \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18n \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18o \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18p \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18q \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18r \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18s \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18t \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18u \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18v \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18w \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18x \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18y \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18z \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\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\x46\n\x1csp_dataframe_rollup__columns\x18} \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x7f \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12\x41\n\x19sp_dataframe_sample__long\x18\x80\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x81\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12G\n\x1csp_dataframe_select__strings\x18\x82\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x83\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x85\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x86\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x87\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x88\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x89\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x8a\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x8c\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8d\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8e\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x8f\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x90\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x91\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x92\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x93\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x94\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x95\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x97\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x98\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x99\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x9a\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x9b\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x9c\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9e\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9f\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xa1\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xa2\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa3\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa4\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa5\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa6\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa7\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa8\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa9\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xaa\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xab\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xac\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12%\n\nstring_val\x18\xad\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xae\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xaf\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb0\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb1\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type\"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr\"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr\"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03\"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult\"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\"\x96\x02\n\x0cSpColumnExpr\x12\x36\n\x14sp_column_equal_null\x18\x01 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x02 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x03 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x04 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x05 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant\"8\n\x0bSpColumnRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t\"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03\"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t\"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr\"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType\"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType\"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr\"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr\"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t\"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"g\n\x12SpColumnStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\"i\n\x14SpColumnStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\"l\n\x18SpColumnStringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr\"j\n\x16SpColumnStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr\"}\n\x14SpColumnStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr\"q\n\x15SpColumnStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x03 \x01(\x0b\x32\t.ast.Expr\"k\n\x16SpColumnStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\"\xfb\x1c\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x0f \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x10 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x11 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x12 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x13 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x14 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x15 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x17 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x18 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x19 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1a \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1b \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12/\n\x10sp_dataframe_ref\x18\x1c \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1d \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1e \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18\x1f \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18! \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18$ \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18% \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18& \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18\' \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18( \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18) \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18* \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18+ \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18, \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18- \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18. \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18/ \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18\x30 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x31 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x32 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x33 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x34 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x35 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x36 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x37 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x38 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18\x39 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18: \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18; \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18< \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant\"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode\"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12\"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"P\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t\x12\x19\n\x06params\x18\x03 \x03(\x0b\x32\t.ast.Expr\"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x7f\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t\x12$\n\x07variant\x18\x05 \x01(\x0b\x32\x13.ast.SpTableVariant\"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t\"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x03 \x01(\t\x12+\n\x06thresh\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String\"\xb9\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x04 \x01(\x0b\x32\x14.ast.Map_String_Expr\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String\"\xae\x02\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x03 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\'\n\x0fto_replace_list\x18\x04 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x06 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12 \n\x06subset\x18\x08 \x01(\x0b\x32\x10.ast.List_String\"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode\"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\"\x94\x02\n\"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08\"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12\"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08\"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03\"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType\"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant\"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant\"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x04\"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr\"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t\"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant\"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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\"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t\"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t\"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double\"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant\"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08\"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08\"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x97\x01\n\"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t\"\x0e\n\x0cSpWindowType\"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type\"\xf1J\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\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\x0etrait_unary_op\x18\x0e \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0f \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x10 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x11 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x12 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x13 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x14 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x15 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x16 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x17 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x18 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x19 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12\"\n\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18\x42 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x43 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x44 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x45 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x46 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\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_apply\x18_ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18` \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x61 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x62 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x63 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x65 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x66 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18g \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18h \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18i \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18j \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18k \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18l \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18m \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18n \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18o \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18p \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18q \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18r \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18s \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18t \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18u \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18v \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18w \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18x \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18y \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18z \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18{ \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\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\x46\n\x1csp_dataframe_rollup__columns\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x45\n\x1bsp_dataframe_sample__double\x18\x80\x01 \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12\x41\n\x19sp_dataframe_sample__long\x18\x81\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x82\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12G\n\x1csp_dataframe_select__strings\x18\x83\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x85\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x86\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x87\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x88\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x8a\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x8b\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x8c\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x8d\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8e\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8f\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x90\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x91\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x92\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x93\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x94\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x96\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x97\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x98\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x99\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x9a\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x9b\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x9c\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x9d\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9e\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9f\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xa0\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xa1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xa2\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xa3\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa4\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa5\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa6\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa7\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa8\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa9\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xaa\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xab\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xac\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xad\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12%\n\nstring_val\x18\xae\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xaf\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb0\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb1\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb2\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n\x18Snowpark/proto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.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"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\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"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"8\n\tBuiltinFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"\x8a\x01\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12*\n\nnamed_args\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"P\n\x04PyFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03pkg\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x03(\t"K\n\x0cSnowflakeUdf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"M\n\x0eSnowflakeSproc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06params\x18\x03 \x03(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xbeK\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\x31\n\x14trait_sp_column_expr\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x04 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x05 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x07 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x08 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\t \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\n \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0b \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0c \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12&\n\x0etrait_unary_op\x18\r \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0e \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x0f \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x10 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x11 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x12 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x13 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x14 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x15 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x16 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x17 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x18 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x19 \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1a \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1b \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1c \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1d \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1e \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18\x1f \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. \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18/ \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x30 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x31 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x32 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x33 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x34 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x35 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x36 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x37 \x01(\x0b\x32\t.ast.PyFnH\x00\x12-\n\x0fpython_date_val\x18\x38 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x39 \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\x0fsnowflake_sproc\x18> \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18? \x01(\x0b\x32\x11.ast.SnowflakeUdfH\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+\n\x0esp_column_cast\x18\x46 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18G \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18H \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18I \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18J \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18K \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18L \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18M \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18N \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18O \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18P \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18Q \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18R \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18S \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18T \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18U \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18V \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18W \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18X \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18Y \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18Z \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_apply\x18^ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18_ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18` \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x61 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x62 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x63 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x64 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x65 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x66 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18g \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18h \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18i \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18j \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18k \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18l \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18m \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18n \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18o \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18p \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18q \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18r \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18s \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18t \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18u \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18v \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18w \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18x \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18y \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18z \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18{ \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\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\x46\n\x1csp_dataframe_rollup__columns\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x80\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x45\n\x1bsp_dataframe_sample__double\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12\x41\n\x19sp_dataframe_sample__long\x18\x82\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x83\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12G\n\x1csp_dataframe_select__strings\x18\x84\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x85\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x86\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x87\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x88\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x89\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x8a\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x8b\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x8c\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x8d\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x8e\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8f\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x90\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x91\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x92\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x93\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x94\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x95\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x97\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x98\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x99\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x9a\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x9b\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x9c\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x9d\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x9e\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xa0\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xa1\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xa2\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xa3\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xa4\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa5\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa6\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa7\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa8\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa9\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xaa\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xab\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xac\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xad\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xae\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12%\n\nstring_val\x18\xaf\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb0\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb1\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb2\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb3\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\x96\x02\n\x0cSpColumnExpr\x12\x36\n\x14sp_column_equal_null\x18\x01 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x02 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x03 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x04 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x05 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"g\n\x12SpColumnStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"i\n\x14SpColumnStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"l\n\x18SpColumnStringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"j\n\x16SpColumnStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"q\n\x15SpColumnStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x03 \x01(\x0b\x32\t.ast.Expr"k\n\x16SpColumnStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\xf2\x1d\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x0f \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18\x10 \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18\x11 \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12;\n\x16sp_dataframe_intersect\x18\x12 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x13 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x14 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x15 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x16 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x17 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x18 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x19 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x1a \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1b \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1c \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18\x1d \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18\x1e \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1f \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18 \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18! \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18" \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18# \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18& \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18\' \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18( \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18) \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18* \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18+ \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18, \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18- \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18. \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18/ \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_flatten__column\x18\x30 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12g\n.sp_flatten__column__string__bool__bool__string\x18\x31 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12(\n\x0csp_generator\x18\x32 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x33 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x34 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x35 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x36 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x37 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x38 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x39 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18: \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18; \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18< \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18= \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18> \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xbd\x01\n(SpFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"S\n\x10SpFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x05input\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t\x12\x19\n\x06params\x18\x03 \x03(\x0b\x32\t.ast.Expr"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x7f\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t\x12$\n\x07variant\x18\x05 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x03 \x01(\t\x12+\n\x06thresh\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String"\xb9\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x04 \x01(\x0b\x32\x14.ast.Map_String_Expr\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String"\xae\x02\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x03 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\'\n\x0fto_replace_list\x18\x04 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x06 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12 \n\x06subset\x18\x08 \x01(\x0b\x32\x10.ast.List_String"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xe8\x01\n1SpDataframeFlatten_Column_String_Bool_Bool_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"~\n\x19SpDataframeFlatten_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05input\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xa1\x01\n\x10SpDataframeFirst\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\r\n\x05\x62lock\x18\x04 \x01(\x08\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc7\x01\n\x16SpDataframeRandomSplit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07weights\x18\x03 \x03(\x01\x12)\n\x04seed\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x10statement_params\x18\x05 \x01(\x0b\x32\x16.ast.Map_String_String"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x01"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xeaK\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\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\x0etrait_unary_op\x18\x0e \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0f \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x10 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x11 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x12 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x13 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x14 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x15 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x16 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x17 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x18 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x19 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x1a\n\x05py_fn\x18\x38 \x01(\x0b\x32\t.ast.PyFnH\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\x0fsnowflake_sproc\x18? \x01(\x0b\x32\x13.ast.SnowflakeSprocH\x00\x12*\n\rsnowflake_udf\x18@ \x01(\x0b\x32\x11.ast.SnowflakeUdfH\x00\x12 \n\x08some_val\x18\x41 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18\x42 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x43 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x44 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x45 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x46 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\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_apply\x18_ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18` \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x61 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x62 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x63 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x64 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x65 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x66 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18g \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18h \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18i \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x46\n\x1csp_dataframe_flatten__column\x18j \x01(\x0b\x32\x1e.ast.SpDataframeFlatten_ColumnH\x00\x12z\n8sp_dataframe_flatten__column__string__bool__bool__string\x18k \x01(\x0b\x32\x36.ast.SpDataframeFlatten_Column_String_Bool_Bool_StringH\x00\x12\x38\n\x15sp_dataframe_group_by\x18l \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18m \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18n \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18o \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18p \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18q \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18r \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18s \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18t \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18u \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18v \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18w \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18x \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18y \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18z \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18{ \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18| \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\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\x7f \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x80\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x81\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x45\n\x1bsp_dataframe_sample__double\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12\x41\n\x19sp_dataframe_sample__long\x18\x83\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x84\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12G\n\x1csp_dataframe_select__strings\x18\x85\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x86\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x87\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x88\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x89\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x8a\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x8b\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x8c\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x8d\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x8e\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x8f\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x90\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x91\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_flatten__column\x18\x92\x01 \x01(\x0b\x32\x15.ast.SpFlatten_ColumnH\x00\x12h\n.sp_flatten__column__string__bool__bool__string\x18\x93\x01 \x01(\x0b\x32-.ast.SpFlatten_Column_String_Bool_Bool_StringH\x00\x12)\n\x0csp_generator\x18\x94\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x95\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x96\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x97\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x98\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x99\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x9a\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x9b\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x9c\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x9d\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x9e\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x9f\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xa1\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xa2\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xa3\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xa4\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xa5\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa6\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa7\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa8\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa9\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xaa\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xab\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xac\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xad\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xae\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xaf\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12%\n\nstring_val\x18\xb0\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xb1\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xb2\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xb3\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xb4\x01 \x01(\x0b\x32\r.ast.TupleValH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' +) _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.ast_pb2', 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' - _LIST_EXPR._serialized_start=56 - _LIST_EXPR._serialized_end=92 - _LIST_SPCOLUMNEXPR._serialized_start=94 - _LIST_SPCOLUMNEXPR._serialized_end=146 - _LIST_STRING._serialized_start=148 - _LIST_STRING._serialized_end=175 - _MAP_EXPR_EXPR._serialized_start=177 - _MAP_EXPR_EXPR._serialized_end=228 - _MAP_STRING_EXPR._serialized_start=230 - _MAP_STRING_EXPR._serialized_end=285 - _MAP_STRING_SPVARIANT._serialized_start=287 - _MAP_STRING_SPVARIANT._serialized_end=352 - _MAP_STRING_STRING._serialized_start=354 - _MAP_STRING_STRING._serialized_end=413 - _TUPLE_EXPR_EXPR._serialized_start=415 - _TUPLE_EXPR_EXPR._serialized_end=478 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start=480 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end=577 - _TUPLE_STRING_EXPR._serialized_start=579 - _TUPLE_STRING_EXPR._serialized_end=633 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_start=635 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_end=705 - _TUPLE_STRING_SPVARIANT._serialized_start=707 - _TUPLE_STRING_SPVARIANT._serialized_end=771 - _TUPLE_STRING_STRING._serialized_start=773 - _TUPLE_STRING_STRING._serialized_end=818 - _LANGUAGE._serialized_start=821 - _LANGUAGE._serialized_end=985 - _PYTHONLANGUAGE._serialized_start=987 - _PYTHONLANGUAGE._serialized_end=1034 - _SCALALANGUAGE._serialized_start=1036 - _SCALALANGUAGE._serialized_end=1082 - _JAVALANGUAGE._serialized_start=1084 - _JAVALANGUAGE._serialized_end=1129 - _VERSION._serialized_start=1131 - _VERSION._serialized_end=1200 - _PYTHONTIMEZONE._serialized_start=1202 - _PYTHONTIMEZONE._serialized_end=1286 - _PDINDEXEXPR._serialized_start=1288 - _PDINDEXEXPR._serialized_end=1401 - _ORD._serialized_start=1403 - _ORD._serialized_end=1430 - _FLEXORD._serialized_start=1432 - _FLEXORD._serialized_end=1463 - _KEY._serialized_start=1465 - _KEY._serialized_end=1492 - _PDPROJECTINDEXEXPR._serialized_start=1495 - _PDPROJECTINDEXEXPR._serialized_end=1808 - _ORDRANGE._serialized_start=1810 - _ORDRANGE._serialized_end=1896 - _FLEXORDRANGE._serialized_start=1898 - _FLEXORDRANGE._serialized_end=1988 - _KEYRANGE._serialized_start=1990 - _KEYRANGE._serialized_end=2051 - _ORDLIST._serialized_start=2053 - _ORDLIST._serialized_end=2087 - _FLEXORDLIST._serialized_start=2089 - _FLEXORDLIST._serialized_end=2127 - _KEYLIST._serialized_start=2129 - _KEYLIST._serialized_end=2163 - _BOOLFILTERLIST._serialized_start=2165 - _BOOLFILTERLIST._serialized_end=2208 - _SPFLATTENMODE._serialized_start=2210 - _SPFLATTENMODE._serialized_end=2335 - _SPTABLEVARIANT._serialized_start=2337 - _SPTABLEVARIANT._serialized_end=2417 - _SPGROUPINGSETS._serialized_start=2419 - _SPGROUPINGSETS._serialized_end=2473 - _SPSAVEMODE._serialized_start=2476 - _SPSAVEMODE._serialized_end=2635 - _SPJOINTYPE._serialized_start=2638 - _SPJOINTYPE._serialized_end=2932 - _SPWINDOWSPECEXPR._serialized_start=2935 - _SPWINDOWSPECEXPR._serialized_end=3396 - _SPWINDOWSPECORDERBY._serialized_start=3398 - _SPWINDOWSPECORDERBY._serialized_end=3488 - _SPWINDOWSPECPARTITIONBY._serialized_start=3490 - _SPWINDOWSPECPARTITIONBY._serialized_end=3584 - _SPWINDOWSPECRANGEBETWEEN._serialized_start=3586 - _SPWINDOWSPECRANGEBETWEEN._serialized_end=3676 - _SPWINDOWSPECROWSBETWEEN._serialized_start=3678 - _SPWINDOWSPECROWSBETWEEN._serialized_end=3767 - _SPTIMESTAMPTIMEZONE._serialized_start=3770 - _SPTIMESTAMPTIMEZONE._serialized_end=3957 - _SPDATATYPE._serialized_start=3960 - _SPDATATYPE._serialized_end=4762 - _SPARRAYTYPE._serialized_start=4764 - _SPARRAYTYPE._serialized_end=4826 - _SPCOLUMNIDENTIFIER._serialized_start=4828 - _SPCOLUMNIDENTIFIER._serialized_end=4862 - _SPDECIMALTYPE._serialized_start=4864 - _SPDECIMALTYPE._serialized_end=4913 - _SPMAPTYPE._serialized_start=4915 - _SPMAPTYPE._serialized_end=5014 - _SPSTRINGTYPE._serialized_start=5016 - _SPSTRINGTYPE._serialized_end=5075 - _SPSTRUCTFIELD._serialized_start=5077 - _SPSTRUCTFIELD._serialized_end=5198 - _SPSTRUCTTYPE._serialized_start=5200 - _SPSTRUCTTYPE._serialized_end=5270 - _SPTIMESTAMPTYPE._serialized_start=5272 - _SPTIMESTAMPTYPE._serialized_end=5334 - _SPVECTORTYPE._serialized_start=5336 - _SPVECTORTYPE._serialized_end=5398 - _SPVARIANT._serialized_start=5401 - _SPVARIANT._serialized_end=6107 - _SPVARIANT_OBJECT._serialized_start=6109 - _SPVARIANT_OBJECT._serialized_end=6164 - _SPVARIANT_LIST._serialized_start=6166 - _SPVARIANT_LIST._serialized_end=6217 - _SPVARIANT_TIMESTAMP._serialized_start=6219 - _SPVARIANT_TIMESTAMP._serialized_end=6251 - _SPVARIANT_DATE._serialized_start=6253 - _SPVARIANT_DATE._serialized_end=6280 - _SPVARIANT_TIME._serialized_start=6282 - _SPVARIANT_TIME._serialized_end=6309 - _SPVARIANT_BYTES._serialized_start=6311 - _SPVARIANT_BYTES._serialized_end=6339 - _SPVARIANT_STRING._serialized_start=6341 - _SPVARIANT_STRING._serialized_end=6370 - _SPVARIANT_BOOL._serialized_start=6372 - _SPVARIANT_BOOL._serialized_end=6399 - _SPVARIANT_BIGINT._serialized_start=6401 - _SPVARIANT_BIGINT._serialized_end=6430 - _SPVARIANT_BIGDECIMAL._serialized_start=6432 - _SPVARIANT_BIGDECIMAL._serialized_end=6465 - _SPVARIANT_INT._serialized_start=6467 - _SPVARIANT_INT._serialized_end=6493 - _SPVARIANT_FLOAT._serialized_start=6495 - _SPVARIANT_FLOAT._serialized_end=6523 - _SPVARIANT_DOUBLE._serialized_start=6525 - _SPVARIANT_DOUBLE._serialized_end=6554 - _SPROW._serialized_start=6556 - _SPROW._serialized_end=6591 - _SRCPOSITION._serialized_start=6593 - _SRCPOSITION._serialized_end=6700 - _VARID._serialized_start=6702 - _VARID._serialized_end=6728 - _REQUEST._serialized_start=6730 - _REQUEST._serialized_end=6842 - _RESPONSE._serialized_start=6844 - _RESPONSE._serialized_end=6881 - _CONST._serialized_start=6884 - _CONST._serialized_end=7571 - _NONEVAL._serialized_start=7573 - _NONEVAL._serialized_end=7613 - _NULLVAL._serialized_start=7615 - _NULLVAL._serialized_end=7655 - _BOOLVAL._serialized_start=7657 - _BOOLVAL._serialized_end=7708 - _INT32VAL._serialized_start=7710 - _INT32VAL._serialized_end=7762 - _INT64VAL._serialized_start=7764 - _INT64VAL._serialized_end=7816 - _FLOAT64VAL._serialized_start=7818 - _FLOAT64VAL._serialized_end=7872 - _BIGINTVAL._serialized_start=7874 - _BIGINTVAL._serialized_end=7927 - _BIGDECIMALVAL._serialized_start=7929 - _BIGDECIMALVAL._serialized_end=8014 - _STRINGVAL._serialized_start=8016 - _STRINGVAL._serialized_end=8069 - _BINARYVAL._serialized_start=8071 - _BINARYVAL._serialized_end=8124 - _TIMESTAMPVAL._serialized_start=8126 - _TIMESTAMPVAL._serialized_end=8182 - _DATEVAL._serialized_start=8184 - _DATEVAL._serialized_end=8235 - _TIMEVAL._serialized_start=8237 - _TIMEVAL._serialized_end=8288 - _PYTHONTIMESTAMPVAL._serialized_start=8291 - _PYTHONTIMESTAMPVAL._serialized_end=8484 - _PYTHONDATEVAL._serialized_start=8486 - _PYTHONDATEVAL._serialized_end=8574 - _PYTHONTIMEVAL._serialized_start=8577 - _PYTHONTIMEVAL._serialized_end=8723 - _FNVAL._serialized_start=8725 - _FNVAL._serialized_end=8804 - _IFEXPR._serialized_start=8806 - _IFEXPR._serialized_end=8927 - _SOMEVAL._serialized_start=8929 - _SOMEVAL._serialized_end=8991 - _TUPLEVAL._serialized_start=8993 - _TUPLEVAL._serialized_end=9057 - _LISTVAL._serialized_start=9059 - _LISTVAL._serialized_end=9122 - _SEQMAPVAL._serialized_start=9124 - _SEQMAPVAL._serialized_end=9194 - _BUILTINFN._serialized_start=9196 - _BUILTINFN._serialized_end=9252 - _APPLYEXPR._serialized_start=9255 - _APPLYEXPR._serialized_end=9393 - _PYFN._serialized_start=9395 - _PYFN._serialized_end=9475 - _SNOWFLAKEUDF._serialized_start=9477 - _SNOWFLAKEUDF._serialized_end=9552 - _SNOWFLAKESPROC._serialized_start=9554 - _SNOWFLAKESPROC._serialized_end=9631 - _UNARYOP._serialized_start=9633 - _UNARYOP._serialized_end=9703 - _BINOP._serialized_start=9706 - _BINOP._serialized_end=10160 - _NOT._serialized_start=10162 - _NOT._serialized_end=10226 - _AND._serialized_start=10228 - _AND._serialized_end=10312 - _OR._serialized_start=10314 - _OR._serialized_end=10397 - _EQ._serialized_start=10399 - _EQ._serialized_end=10482 - _NEQ._serialized_start=10484 - _NEQ._serialized_end=10568 - _LT._serialized_start=10570 - _LT._serialized_end=10653 - _LEQ._serialized_start=10655 - _LEQ._serialized_end=10739 - _GT._serialized_start=10741 - _GT._serialized_end=10824 - _GEQ._serialized_start=10826 - _GEQ._serialized_end=10910 - _NEG._serialized_start=10912 - _NEG._serialized_end=10976 - _ADD._serialized_start=10978 - _ADD._serialized_end=11062 - _SUB._serialized_start=11064 - _SUB._serialized_end=11148 - _MUL._serialized_start=11150 - _MUL._serialized_end=11234 - _DIV._serialized_start=11236 - _DIV._serialized_end=11320 - _MOD._serialized_start=11322 - _MOD._serialized_end=11406 - _POW._serialized_start=11408 - _POW._serialized_end=11492 - _BITAND._serialized_start=11494 - _BITAND._serialized_end=11581 - _BITOR._serialized_start=11583 - _BITOR._serialized_end=11669 - _BITXOR._serialized_start=11671 - _BITXOR._serialized_end=11758 - _RANGEVAL._serialized_start=11760 - _RANGEVAL._serialized_end=11877 - _EXPR._serialized_start=11880 - _EXPR._serialized_end=21421 - _REF._serialized_start=21423 - _REF._serialized_end=21487 - _CASTEXPR._serialized_start=21489 - _CASTEXPR._serialized_end=21576 - _PDDATAFRAME._serialized_start=21579 - _PDDATAFRAME._serialized_end=21728 - _PDDROPNA._serialized_start=21731 - _PDDROPNA._serialized_end=21873 - _PDDATAFRAMEGETITEM._serialized_start=21875 - _PDDATAFRAMEGETITEM._serialized_end=21976 - _PDDATAFRAMESETITEM._serialized_start=21978 - _PDDATAFRAMESETITEM._serialized_end=22101 - _PDDATAFRAMELOC._serialized_start=22103 - _PDDATAFRAMELOC._serialized_end=22225 - _PDDATAFRAMEILOC._serialized_start=22227 - _PDDATAFRAMEILOC._serialized_end=22350 - _PDREPR._serialized_start=22352 - _PDREPR._serialized_end=22466 - _PDREPRRESULT._serialized_start=22468 - _PDREPRRESULT._serialized_end=22585 - _RESULT._serialized_start=22588 - _RESULT._serialized_end=22746 - _EVALRESULT._serialized_start=22749 - _EVALRESULT._serialized_end=23521 - _EVALOK._serialized_start=23523 - _EVALOK._serialized_end=23603 - _ERROR._serialized_start=23605 - _ERROR._serialized_end=23695 - _SESSIONRESETREQUIREDERROR._serialized_start=23697 - _SESSIONRESETREQUIREDERROR._serialized_end=23765 - _SPCOLUMNEXPR._serialized_start=23768 - _SPCOLUMNEXPR._serialized_end=24046 - _SPCOLUMNREF._serialized_start=24048 - _SPCOLUMNREF._serialized_end=24104 - _SPCOLUMNSQLEXPR._serialized_start=24106 - _SPCOLUMNSQLEXPR._serialized_end=24215 - _SPCOLUMNFN._serialized_start=24218 - _SPCOLUMNFN._serialized_end=25515 - _SPCOLUMNALIAS._serialized_start=25518 - _SPCOLUMNALIAS._serialized_end=25653 - _SPCOLUMNAPPLY_INT._serialized_start=25655 - _SPCOLUMNAPPLY_INT._serialized_end=25742 - _SPCOLUMNAPPLY_STRING._serialized_start=25744 - _SPCOLUMNAPPLY_STRING._serialized_end=25836 - _SPCOLUMNASC._serialized_start=25838 - _SPCOLUMNASC._serialized_end=25955 - _SPCOLUMNBETWEEN._serialized_start=25958 - _SPCOLUMNBETWEEN._serialized_end=26094 - _SPCOLUMNCAST._serialized_start=26096 - _SPCOLUMNCAST._serialized_end=26194 - _SPCOLUMNTRYCAST._serialized_start=26196 - _SPCOLUMNTRYCAST._serialized_end=26297 - _SPCOLUMNDESC._serialized_start=26299 - _SPCOLUMNDESC._serialized_end=26417 - _SPCOLUMNEQUALNAN._serialized_start=26419 - _SPCOLUMNEQUALNAN._serialized_end=26492 - _SPCOLUMNEQUALNULL._serialized_start=26494 - _SPCOLUMNEQUALNULL._serialized_end=26592 - _SPCOLUMNIN_DATAFRAME._serialized_start=26594 - _SPCOLUMNIN_DATAFRAME._serialized_end=26705 - _SPCOLUMNIN_SEQ._serialized_start=26707 - _SPCOLUMNIN_SEQ._serialized_end=26805 - _SPCOLUMNISNOTNULL._serialized_start=26807 - _SPCOLUMNISNOTNULL._serialized_end=26881 - _SPCOLUMNISNULL._serialized_start=26883 - _SPCOLUMNISNULL._serialized_end=26954 - _SPCOLUMNNAME._serialized_start=26956 - _SPCOLUMNNAME._serialized_end=27040 - _SPCOLUMNOVER._serialized_start=27042 - _SPCOLUMNOVER._serialized_end=27155 - _SPCOLUMNWITHINGROUP._serialized_start=27157 - _SPCOLUMNWITHINGROUP._serialized_end=27276 - _SPCOLUMNSTRINGLIKE._serialized_start=27278 - _SPCOLUMNSTRINGLIKE._serialized_end=27381 - _SPCOLUMNSTRINGREGEXP._serialized_start=27383 - _SPCOLUMNSTRINGREGEXP._serialized_end=27488 - _SPCOLUMNSTRINGSTARTSWITH._serialized_start=27490 - _SPCOLUMNSTRINGSTARTSWITH._serialized_end=27598 - _SPCOLUMNSTRINGENDSWITH._serialized_start=27600 - _SPCOLUMNSTRINGENDSWITH._serialized_end=27706 - _SPCOLUMNSTRINGSUBSTR._serialized_start=27708 - _SPCOLUMNSTRINGSUBSTR._serialized_end=27833 - _SPCOLUMNSTRINGCOLLATE._serialized_start=27835 - _SPCOLUMNSTRINGCOLLATE._serialized_end=27948 - _SPCOLUMNSTRINGCONTAINS._serialized_start=27950 - _SPCOLUMNSTRINGCONTAINS._serialized_end=28057 - _SPDATAFRAMEEXPR._serialized_start=28060 - _SPDATAFRAMEEXPR._serialized_end=31767 - _SPDATAFRAMEREF._serialized_start=31769 - _SPDATAFRAMEREF._serialized_end=31840 - _SPDATAFRAMESHOW._serialized_start=31842 - _SPDATAFRAMESHOW._serialized_end=31914 - _SPCREATEDATAFRAME._serialized_start=31917 - _SPCREATEDATAFRAME._serialized_end=32046 - _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start=32049 - _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end=32238 - _SPFLATTEN_COLUMN._serialized_start=32240 - _SPFLATTEN_COLUMN._serialized_end=32323 - _SPGENERATOR._serialized_start=32325 - _SPGENERATOR._serialized_end=32442 - _SPRANGE._serialized_start=32445 - _SPRANGE._serialized_end=32585 - _SPSQL._serialized_start=32587 - _SPSQL._serialized_end=32667 - _SPSTOREDPROCEDURE._serialized_start=32669 - _SPSTOREDPROCEDURE._serialized_end=32784 - _SPTABLE._serialized_start=32786 - _SPTABLE._serialized_end=32913 - _SPTABLEFUNCTION._serialized_start=32915 - _SPTABLEFUNCTION._serialized_end=33039 - _SPDATAFRAMETODF._serialized_start=33041 - _SPDATAFRAMETODF._serialized_end=33160 - _SPDATAFRAMENADROP_SCALA._serialized_start=33163 - _SPDATAFRAMENADROP_SCALA._serialized_end=33298 - _SPDATAFRAMENADROP_PYTHON._serialized_start=33301 - _SPDATAFRAMENADROP_PYTHON._serialized_end=33484 - _SPDATAFRAMENAFILL._serialized_start=33487 - _SPDATAFRAMENAFILL._serialized_end=33672 - _SPDATAFRAMENAREPLACE._serialized_start=33675 - _SPDATAFRAMENAREPLACE._serialized_end=33977 - _SPDATAFRAMEAGG._serialized_start=33980 - _SPDATAFRAMEAGG._serialized_end=34113 - _SPDATAFRAMEAPPLY._serialized_start=34115 - _SPDATAFRAMEAPPLY._serialized_end=34216 - _SPDATAFRAMECOL._serialized_start=34218 - _SPDATAFRAMECOL._serialized_end=34317 - _SPDATAFRAMECROSSJOIN._serialized_start=34319 - _SPDATAFRAMECROSSJOIN._serialized_end=34442 - _SPDATAFRAMECUBE._serialized_start=34445 - _SPDATAFRAMECUBE._serialized_end=34578 - _SPDATAFRAMEDISTINCT._serialized_start=34580 - _SPDATAFRAMEDISTINCT._serialized_end=34666 - _SPDATAFRAMEDROP_COLUMNS._serialized_start=34669 - _SPDATAFRAMEDROP_COLUMNS._serialized_end=34810 - _SPDATAFRAMEDROP_STRINGS._serialized_start=34812 - _SPDATAFRAMEDROP_STRINGS._serialized_end=34934 - _SPDATAFRAMEDROPDUPLICATES._serialized_start=34936 - _SPDATAFRAMEDROPDUPLICATES._serialized_end=35042 - _SPDATAFRAMEEXCEPT._serialized_start=35044 - _SPDATAFRAMEEXCEPT._serialized_end=35165 - _SPDATAFRAMEFILTER._serialized_start=35167 - _SPDATAFRAMEFILTER._serialized_end=35289 - _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start=35292 - _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end=35524 - _SPDATAFRAMEFLATTEN_COLUMN._serialized_start=35526 - _SPDATAFRAMEFLATTEN_COLUMN._serialized_end=35652 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start=35655 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end=35799 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_start=35801 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_end=35926 - _SPDATAFRAMEGROUPBY._serialized_start=35928 - _SPDATAFRAMEGROUPBY._serialized_end=36013 - _SPDATAFRAMEINTERSECT._serialized_start=36015 - _SPDATAFRAMEINTERSECT._serialized_end=36139 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start=36142 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end=36412 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start=36415 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end=36691 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start=36694 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end=36910 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start=36913 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end=37149 - _SPDATAFRAMELIMIT._serialized_start=37151 - _SPDATAFRAMELIMIT._serialized_end=37245 - _SPDATAFRAMENATURALJOIN._serialized_start=37248 - _SPDATAFRAMENATURALJOIN._serialized_end=37409 - _SPDATAFRAMEPIVOT_COLUMN._serialized_start=37412 - _SPDATAFRAMEPIVOT_COLUMN._serialized_end=37575 - _SPDATAFRAMEPIVOT_STRING._serialized_start=37578 - _SPDATAFRAMEPIVOT_STRING._serialized_end=37722 - _SPDATAFRAMERENAME._serialized_start=37725 - _SPDATAFRAMERENAME._serialized_end=37859 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_start=37862 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_end=38005 - _SPDATAFRAMEROLLUP_STRINGS._serialized_start=38007 - _SPDATAFRAMEROLLUP_STRINGS._serialized_end=38131 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_start=38133 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_end=38254 - _SPDATAFRAMESAMPLE_LONG._serialized_start=38256 - _SPDATAFRAMESAMPLE_LONG._serialized_end=38358 - _SPDATAFRAMESELECT_COLUMNS._serialized_start=38361 - _SPDATAFRAMESELECT_COLUMNS._serialized_end=38496 - _SPDATAFRAMESELECT_STRINGS._serialized_start=38498 - _SPDATAFRAMESELECT_STRINGS._serialized_end=38622 - _SPDATAFRAMESORT._serialized_start=38625 - _SPDATAFRAMESORT._serialized_end=38758 - _SPDATAFRAMEUNION._serialized_start=38760 - _SPDATAFRAMEUNION._serialized_end=38879 - _SPDATAFRAMEUNIONALL._serialized_start=38881 - _SPDATAFRAMEUNIONALL._serialized_end=39003 - _SPDATAFRAMEUNIONALLBYNAME._serialized_start=39006 - _SPDATAFRAMEUNIONALLBYNAME._serialized_end=39134 - _SPDATAFRAMEUNIONBYNAME._serialized_start=39136 - _SPDATAFRAMEUNIONBYNAME._serialized_end=39261 - _SPDATAFRAMEWHERE._serialized_start=39263 - _SPDATAFRAMEWHERE._serialized_end=39384 - _SPDATAFRAMEWITHCOLUMN._serialized_start=39387 - _SPDATAFRAMEWITHCOLUMN._serialized_end=39525 - _SPDATAFRAMEWITHCOLUMNS._serialized_start=39528 - _SPDATAFRAMEWITHCOLUMNS._serialized_end=39671 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start=39674 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end=39833 - _SPCOPYABLEDATAFRAMEEXPR._serialized_start=39836 - _SPCOPYABLEDATAFRAMEEXPR._serialized_end=40352 - _SPDATAFRAMEREADEROPTIONS._serialized_start=40354 - _SPDATAFRAMEREADEROPTIONS._serialized_end=40408 - _SPDATAFRAMEREADERSCHEMA._serialized_start=40410 - _SPDATAFRAMEREADERSCHEMA._serialized_end=40463 - _SPREADAVRO._serialized_start=40465 - _SPREADAVRO._serialized_end=40522 - _SPREADCSV._serialized_start=40524 - _SPREADCSV._serialized_end=40580 - _SPREADJSON._serialized_start=40582 - _SPREADJSON._serialized_end=40639 - _SPREADORC._serialized_start=40641 - _SPREADORC._serialized_end=40697 - _SPREADPARQUET._serialized_start=40699 - _SPREADPARQUET._serialized_end=40759 - _SPREADTABLE._serialized_start=40761 - _SPREADTABLE._serialized_end=40819 - _SPREADXML._serialized_start=40821 - _SPREADXML._serialized_end=40877 - _SPCOPYINTO._serialized_start=40880 - _SPCOPYINTO._serialized_end=41083 - _SPDATAFRAMEWRITER._serialized_start=41086 - _SPDATAFRAMEWRITER._serialized_end=41449 - _SPDATAFRAMEWRITERSAVEMODE._serialized_start=41451 - _SPDATAFRAMEWRITERSAVEMODE._serialized_end=41506 - _SPDATAFRAMEWRITEROPTIONS._serialized_start=41508 - _SPDATAFRAMEWRITEROPTIONS._serialized_end=41562 - _SPWRITECSV._serialized_start=41564 - _SPWRITECSV._serialized_end=41655 - _SPWRITEJSON._serialized_start=41657 - _SPWRITEJSON._serialized_end=41749 - _SPWRITEPARQUET._serialized_start=41751 - _SPWRITEPARQUET._serialized_end=41846 - _SPWRITETABLE._serialized_start=41849 - _SPWRITETABLE._serialized_end=41998 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start=42000 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end=42066 - _SPDATAFRAMESTATSCORR._serialized_start=42068 - _SPDATAFRAMESTATSCORR._serialized_end=42124 - _SPDATAFRAMESTATSCOV._serialized_start=42126 - _SPDATAFRAMESTATSCOV._serialized_end=42181 - _SPDATAFRAMESTATSCROSSTAB._serialized_start=42183 - _SPDATAFRAMESTATSCROSSTAB._serialized_end=42302 - _SPDATAFRAMESTATSSAMPLEBY._serialized_start=42305 - _SPDATAFRAMESTATSSAMPLEBY._serialized_end=42486 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start=42489 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end=44098 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start=44101 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end=44294 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start=44297 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end=44472 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start=44475 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end=44628 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start=44631 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end=44779 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start=44782 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end=44952 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start=44954 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end=45071 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start=45074 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end=45222 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start=45225 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end=45374 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start=45377 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end=45528 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start=45531 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end=45679 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start=45682 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end=45830 - _SPDATAFRAMETYPE._serialized_start=45832 - _SPDATAFRAMETYPE._serialized_end=45890 - _SPGROUPEDDATAFRAMETYPE._serialized_start=45892 - _SPGROUPEDDATAFRAMETYPE._serialized_end=45962 - _SPWINDOWTYPE._serialized_start=45964 - _SPWINDOWTYPE._serialized_end=45978 - _SPCOLEXPRTYPE._serialized_start=45980 - _SPCOLEXPRTYPE._serialized_end=46019 - _HASSRCPOSITION._serialized_start=46022 - _HASSRCPOSITION._serialized_end=55607 - _STMT._serialized_start=55609 - _STMT._serialized_end=55684 - _ASSIGN._serialized_start=55686 - _ASSIGN._serialized_end=55806 - _EVAL._serialized_start=55808 - _EVAL._serialized_end=55855 - _TYPE._serialized_start=55858 - _TYPE._serialized_end=56818 - _UNKNOWNTYPE._serialized_start=56820 - _UNKNOWNTYPE._serialized_end=56833 - _ANYTYPE._serialized_start=56835 - _ANYTYPE._serialized_end=56844 - _SCALARTYPE._serialized_start=56847 - _SCALARTYPE._serialized_end=57148 - _NUMERICTYPE._serialized_start=57151 - _NUMERICTYPE._serialized_end=57333 - _NUMBERTYPE._serialized_start=57335 - _NUMBERTYPE._serialized_end=57347 - _NOTHINGTYPE._serialized_start=57349 - _NOTHINGTYPE._serialized_end=57362 - _UNITTYPE._serialized_start=57364 - _UNITTYPE._serialized_end=57374 - _BOOLTYPE._serialized_start=57376 - _BOOLTYPE._serialized_end=57386 - _INT32TYPE._serialized_start=57388 - _INT32TYPE._serialized_end=57399 - _INT64TYPE._serialized_start=57401 - _INT64TYPE._serialized_end=57412 - _FLOAT64TYPE._serialized_start=57414 - _FLOAT64TYPE._serialized_end=57427 - _STRINGTYPE._serialized_start=57429 - _STRINGTYPE._serialized_end=57441 - _PDREPRTYPE._serialized_start=57443 - _PDREPRTYPE._serialized_end=57455 - _FNTYPE._serialized_start=57457 - _FNTYPE._serialized_end=57516 - _OPTIONTYPE._serialized_start=57518 - _OPTIONTYPE._serialized_end=57554 - _TUPLETYPE._serialized_start=57556 - _TUPLETYPE._serialized_end=57591 - _LISTTYPE._serialized_start=57593 - _LISTTYPE._serialized_end=57627 - _MAPTYPE._serialized_start=57629 - _MAPTYPE._serialized_end=57682 - _TYVAR._serialized_start=57684 - _TYVAR._serialized_end=57703 + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b"\n\034com.snowflake.snowpark.proto" + _LIST_EXPR._serialized_start = 65 + _LIST_EXPR._serialized_end = 101 + _LIST_SPCOLUMNEXPR._serialized_start = 103 + _LIST_SPCOLUMNEXPR._serialized_end = 155 + _LIST_STRING._serialized_start = 157 + _LIST_STRING._serialized_end = 184 + _MAP_EXPR_EXPR._serialized_start = 186 + _MAP_EXPR_EXPR._serialized_end = 237 + _MAP_STRING_EXPR._serialized_start = 239 + _MAP_STRING_EXPR._serialized_end = 294 + _MAP_STRING_SPVARIANT._serialized_start = 296 + _MAP_STRING_SPVARIANT._serialized_end = 361 + _MAP_STRING_STRING._serialized_start = 363 + _MAP_STRING_STRING._serialized_end = 422 + _TUPLE_EXPR_EXPR._serialized_start = 424 + _TUPLE_EXPR_EXPR._serialized_end = 487 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start = 489 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end = 586 + _TUPLE_STRING_EXPR._serialized_start = 588 + _TUPLE_STRING_EXPR._serialized_end = 642 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 644 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 714 + _TUPLE_STRING_SPVARIANT._serialized_start = 716 + _TUPLE_STRING_SPVARIANT._serialized_end = 780 + _TUPLE_STRING_STRING._serialized_start = 782 + _TUPLE_STRING_STRING._serialized_end = 827 + _LANGUAGE._serialized_start = 830 + _LANGUAGE._serialized_end = 994 + _PYTHONLANGUAGE._serialized_start = 996 + _PYTHONLANGUAGE._serialized_end = 1043 + _SCALALANGUAGE._serialized_start = 1045 + _SCALALANGUAGE._serialized_end = 1091 + _JAVALANGUAGE._serialized_start = 1093 + _JAVALANGUAGE._serialized_end = 1138 + _VERSION._serialized_start = 1140 + _VERSION._serialized_end = 1209 + _PYTHONTIMEZONE._serialized_start = 1211 + _PYTHONTIMEZONE._serialized_end = 1295 + _PDINDEXEXPR._serialized_start = 1297 + _PDINDEXEXPR._serialized_end = 1410 + _ORD._serialized_start = 1412 + _ORD._serialized_end = 1439 + _FLEXORD._serialized_start = 1441 + _FLEXORD._serialized_end = 1472 + _KEY._serialized_start = 1474 + _KEY._serialized_end = 1501 + _PDPROJECTINDEXEXPR._serialized_start = 1504 + _PDPROJECTINDEXEXPR._serialized_end = 1817 + _ORDRANGE._serialized_start = 1819 + _ORDRANGE._serialized_end = 1905 + _FLEXORDRANGE._serialized_start = 1907 + _FLEXORDRANGE._serialized_end = 1997 + _KEYRANGE._serialized_start = 1999 + _KEYRANGE._serialized_end = 2060 + _ORDLIST._serialized_start = 2062 + _ORDLIST._serialized_end = 2096 + _FLEXORDLIST._serialized_start = 2098 + _FLEXORDLIST._serialized_end = 2136 + _KEYLIST._serialized_start = 2138 + _KEYLIST._serialized_end = 2172 + _BOOLFILTERLIST._serialized_start = 2174 + _BOOLFILTERLIST._serialized_end = 2217 + _SPFLATTENMODE._serialized_start = 2219 + _SPFLATTENMODE._serialized_end = 2344 + _SPTABLEVARIANT._serialized_start = 2346 + _SPTABLEVARIANT._serialized_end = 2426 + _SPGROUPINGSETS._serialized_start = 2428 + _SPGROUPINGSETS._serialized_end = 2482 + _SPSAVEMODE._serialized_start = 2485 + _SPSAVEMODE._serialized_end = 2644 + _SPJOINTYPE._serialized_start = 2647 + _SPJOINTYPE._serialized_end = 2941 + _SPWINDOWSPECEXPR._serialized_start = 2944 + _SPWINDOWSPECEXPR._serialized_end = 3405 + _SPWINDOWSPECORDERBY._serialized_start = 3407 + _SPWINDOWSPECORDERBY._serialized_end = 3497 + _SPWINDOWSPECPARTITIONBY._serialized_start = 3499 + _SPWINDOWSPECPARTITIONBY._serialized_end = 3593 + _SPWINDOWSPECRANGEBETWEEN._serialized_start = 3595 + _SPWINDOWSPECRANGEBETWEEN._serialized_end = 3685 + _SPWINDOWSPECROWSBETWEEN._serialized_start = 3687 + _SPWINDOWSPECROWSBETWEEN._serialized_end = 3776 + _SPTIMESTAMPTIMEZONE._serialized_start = 3779 + _SPTIMESTAMPTIMEZONE._serialized_end = 3966 + _SPDATATYPE._serialized_start = 3969 + _SPDATATYPE._serialized_end = 4771 + _SPARRAYTYPE._serialized_start = 4773 + _SPARRAYTYPE._serialized_end = 4835 + _SPCOLUMNIDENTIFIER._serialized_start = 4837 + _SPCOLUMNIDENTIFIER._serialized_end = 4871 + _SPDECIMALTYPE._serialized_start = 4873 + _SPDECIMALTYPE._serialized_end = 4922 + _SPMAPTYPE._serialized_start = 4924 + _SPMAPTYPE._serialized_end = 5023 + _SPSTRINGTYPE._serialized_start = 5025 + _SPSTRINGTYPE._serialized_end = 5084 + _SPSTRUCTFIELD._serialized_start = 5086 + _SPSTRUCTFIELD._serialized_end = 5207 + _SPSTRUCTTYPE._serialized_start = 5209 + _SPSTRUCTTYPE._serialized_end = 5279 + _SPTIMESTAMPTYPE._serialized_start = 5281 + _SPTIMESTAMPTYPE._serialized_end = 5343 + _SPVECTORTYPE._serialized_start = 5345 + _SPVECTORTYPE._serialized_end = 5407 + _SPVARIANT._serialized_start = 5410 + _SPVARIANT._serialized_end = 6116 + _SPVARIANT_OBJECT._serialized_start = 6118 + _SPVARIANT_OBJECT._serialized_end = 6173 + _SPVARIANT_LIST._serialized_start = 6175 + _SPVARIANT_LIST._serialized_end = 6226 + _SPVARIANT_TIMESTAMP._serialized_start = 6228 + _SPVARIANT_TIMESTAMP._serialized_end = 6260 + _SPVARIANT_DATE._serialized_start = 6262 + _SPVARIANT_DATE._serialized_end = 6289 + _SPVARIANT_TIME._serialized_start = 6291 + _SPVARIANT_TIME._serialized_end = 6318 + _SPVARIANT_BYTES._serialized_start = 6320 + _SPVARIANT_BYTES._serialized_end = 6348 + _SPVARIANT_STRING._serialized_start = 6350 + _SPVARIANT_STRING._serialized_end = 6379 + _SPVARIANT_BOOL._serialized_start = 6381 + _SPVARIANT_BOOL._serialized_end = 6408 + _SPVARIANT_BIGINT._serialized_start = 6410 + _SPVARIANT_BIGINT._serialized_end = 6439 + _SPVARIANT_BIGDECIMAL._serialized_start = 6441 + _SPVARIANT_BIGDECIMAL._serialized_end = 6474 + _SPVARIANT_INT._serialized_start = 6476 + _SPVARIANT_INT._serialized_end = 6502 + _SPVARIANT_FLOAT._serialized_start = 6504 + _SPVARIANT_FLOAT._serialized_end = 6532 + _SPVARIANT_DOUBLE._serialized_start = 6534 + _SPVARIANT_DOUBLE._serialized_end = 6563 + _SPROW._serialized_start = 6565 + _SPROW._serialized_end = 6600 + _SRCPOSITION._serialized_start = 6602 + _SRCPOSITION._serialized_end = 6709 + _VARID._serialized_start = 6711 + _VARID._serialized_end = 6737 + _REQUEST._serialized_start = 6739 + _REQUEST._serialized_end = 6851 + _RESPONSE._serialized_start = 6853 + _RESPONSE._serialized_end = 6890 + _CONST._serialized_start = 6893 + _CONST._serialized_end = 7580 + _NONEVAL._serialized_start = 7582 + _NONEVAL._serialized_end = 7622 + _NULLVAL._serialized_start = 7624 + _NULLVAL._serialized_end = 7664 + _BOOLVAL._serialized_start = 7666 + _BOOLVAL._serialized_end = 7717 + _INT32VAL._serialized_start = 7719 + _INT32VAL._serialized_end = 7771 + _INT64VAL._serialized_start = 7773 + _INT64VAL._serialized_end = 7825 + _FLOAT64VAL._serialized_start = 7827 + _FLOAT64VAL._serialized_end = 7881 + _BIGINTVAL._serialized_start = 7883 + _BIGINTVAL._serialized_end = 7936 + _BIGDECIMALVAL._serialized_start = 7938 + _BIGDECIMALVAL._serialized_end = 8023 + _STRINGVAL._serialized_start = 8025 + _STRINGVAL._serialized_end = 8078 + _BINARYVAL._serialized_start = 8080 + _BINARYVAL._serialized_end = 8133 + _TIMESTAMPVAL._serialized_start = 8135 + _TIMESTAMPVAL._serialized_end = 8191 + _DATEVAL._serialized_start = 8193 + _DATEVAL._serialized_end = 8244 + _TIMEVAL._serialized_start = 8246 + _TIMEVAL._serialized_end = 8297 + _PYTHONTIMESTAMPVAL._serialized_start = 8300 + _PYTHONTIMESTAMPVAL._serialized_end = 8493 + _PYTHONDATEVAL._serialized_start = 8495 + _PYTHONDATEVAL._serialized_end = 8583 + _PYTHONTIMEVAL._serialized_start = 8586 + _PYTHONTIMEVAL._serialized_end = 8732 + _FNVAL._serialized_start = 8734 + _FNVAL._serialized_end = 8813 + _IFEXPR._serialized_start = 8815 + _IFEXPR._serialized_end = 8936 + _SOMEVAL._serialized_start = 8938 + _SOMEVAL._serialized_end = 9000 + _TUPLEVAL._serialized_start = 9002 + _TUPLEVAL._serialized_end = 9066 + _LISTVAL._serialized_start = 9068 + _LISTVAL._serialized_end = 9131 + _SEQMAPVAL._serialized_start = 9133 + _SEQMAPVAL._serialized_end = 9203 + _BUILTINFN._serialized_start = 9205 + _BUILTINFN._serialized_end = 9261 + _APPLYEXPR._serialized_start = 9264 + _APPLYEXPR._serialized_end = 9402 + _PYFN._serialized_start = 9404 + _PYFN._serialized_end = 9484 + _SNOWFLAKEUDF._serialized_start = 9486 + _SNOWFLAKEUDF._serialized_end = 9561 + _SNOWFLAKESPROC._serialized_start = 9563 + _SNOWFLAKESPROC._serialized_end = 9640 + _UNARYOP._serialized_start = 9642 + _UNARYOP._serialized_end = 9712 + _BINOP._serialized_start = 9715 + _BINOP._serialized_end = 10169 + _NOT._serialized_start = 10171 + _NOT._serialized_end = 10235 + _AND._serialized_start = 10237 + _AND._serialized_end = 10321 + _OR._serialized_start = 10323 + _OR._serialized_end = 10406 + _EQ._serialized_start = 10408 + _EQ._serialized_end = 10491 + _NEQ._serialized_start = 10493 + _NEQ._serialized_end = 10577 + _LT._serialized_start = 10579 + _LT._serialized_end = 10662 + _LEQ._serialized_start = 10664 + _LEQ._serialized_end = 10748 + _GT._serialized_start = 10750 + _GT._serialized_end = 10833 + _GEQ._serialized_start = 10835 + _GEQ._serialized_end = 10919 + _NEG._serialized_start = 10921 + _NEG._serialized_end = 10985 + _ADD._serialized_start = 10987 + _ADD._serialized_end = 11071 + _SUB._serialized_start = 11073 + _SUB._serialized_end = 11157 + _MUL._serialized_start = 11159 + _MUL._serialized_end = 11243 + _DIV._serialized_start = 11245 + _DIV._serialized_end = 11329 + _MOD._serialized_start = 11331 + _MOD._serialized_end = 11415 + _POW._serialized_start = 11417 + _POW._serialized_end = 11501 + _BITAND._serialized_start = 11503 + _BITAND._serialized_end = 11590 + _BITOR._serialized_start = 11592 + _BITOR._serialized_end = 11678 + _BITXOR._serialized_start = 11680 + _BITXOR._serialized_end = 11767 + _RANGEVAL._serialized_start = 11769 + _RANGEVAL._serialized_end = 11886 + _EXPR._serialized_start = 11889 + _EXPR._serialized_end = 21551 + _REF._serialized_start = 21553 + _REF._serialized_end = 21617 + _CASTEXPR._serialized_start = 21619 + _CASTEXPR._serialized_end = 21706 + _PDDATAFRAME._serialized_start = 21709 + _PDDATAFRAME._serialized_end = 21858 + _PDDROPNA._serialized_start = 21861 + _PDDROPNA._serialized_end = 22003 + _PDDATAFRAMEGETITEM._serialized_start = 22005 + _PDDATAFRAMEGETITEM._serialized_end = 22106 + _PDDATAFRAMESETITEM._serialized_start = 22108 + _PDDATAFRAMESETITEM._serialized_end = 22231 + _PDDATAFRAMELOC._serialized_start = 22233 + _PDDATAFRAMELOC._serialized_end = 22355 + _PDDATAFRAMEILOC._serialized_start = 22357 + _PDDATAFRAMEILOC._serialized_end = 22480 + _PDREPR._serialized_start = 22482 + _PDREPR._serialized_end = 22596 + _PDREPRRESULT._serialized_start = 22598 + _PDREPRRESULT._serialized_end = 22715 + _RESULT._serialized_start = 22718 + _RESULT._serialized_end = 22876 + _EVALRESULT._serialized_start = 22879 + _EVALRESULT._serialized_end = 23651 + _EVALOK._serialized_start = 23653 + _EVALOK._serialized_end = 23733 + _ERROR._serialized_start = 23735 + _ERROR._serialized_end = 23825 + _SESSIONRESETREQUIREDERROR._serialized_start = 23827 + _SESSIONRESETREQUIREDERROR._serialized_end = 23895 + _SPCOLUMNEXPR._serialized_start = 23898 + _SPCOLUMNEXPR._serialized_end = 24176 + _SPCOLUMNREF._serialized_start = 24178 + _SPCOLUMNREF._serialized_end = 24234 + _SPCOLUMNSQLEXPR._serialized_start = 24236 + _SPCOLUMNSQLEXPR._serialized_end = 24345 + _SPCOLUMNFN._serialized_start = 24348 + _SPCOLUMNFN._serialized_end = 25645 + _SPCOLUMNALIAS._serialized_start = 25648 + _SPCOLUMNALIAS._serialized_end = 25783 + _SPCOLUMNAPPLY_INT._serialized_start = 25785 + _SPCOLUMNAPPLY_INT._serialized_end = 25872 + _SPCOLUMNAPPLY_STRING._serialized_start = 25874 + _SPCOLUMNAPPLY_STRING._serialized_end = 25966 + _SPCOLUMNASC._serialized_start = 25968 + _SPCOLUMNASC._serialized_end = 26085 + _SPCOLUMNBETWEEN._serialized_start = 26088 + _SPCOLUMNBETWEEN._serialized_end = 26224 + _SPCOLUMNCAST._serialized_start = 26226 + _SPCOLUMNCAST._serialized_end = 26324 + _SPCOLUMNTRYCAST._serialized_start = 26326 + _SPCOLUMNTRYCAST._serialized_end = 26427 + _SPCOLUMNDESC._serialized_start = 26429 + _SPCOLUMNDESC._serialized_end = 26547 + _SPCOLUMNEQUALNAN._serialized_start = 26549 + _SPCOLUMNEQUALNAN._serialized_end = 26622 + _SPCOLUMNEQUALNULL._serialized_start = 26624 + _SPCOLUMNEQUALNULL._serialized_end = 26722 + _SPCOLUMNIN_DATAFRAME._serialized_start = 26724 + _SPCOLUMNIN_DATAFRAME._serialized_end = 26835 + _SPCOLUMNIN_SEQ._serialized_start = 26837 + _SPCOLUMNIN_SEQ._serialized_end = 26935 + _SPCOLUMNISNOTNULL._serialized_start = 26937 + _SPCOLUMNISNOTNULL._serialized_end = 27011 + _SPCOLUMNISNULL._serialized_start = 27013 + _SPCOLUMNISNULL._serialized_end = 27084 + _SPCOLUMNNAME._serialized_start = 27086 + _SPCOLUMNNAME._serialized_end = 27170 + _SPCOLUMNOVER._serialized_start = 27172 + _SPCOLUMNOVER._serialized_end = 27285 + _SPCOLUMNWITHINGROUP._serialized_start = 27287 + _SPCOLUMNWITHINGROUP._serialized_end = 27406 + _SPCOLUMNSTRINGLIKE._serialized_start = 27408 + _SPCOLUMNSTRINGLIKE._serialized_end = 27511 + _SPCOLUMNSTRINGREGEXP._serialized_start = 27513 + _SPCOLUMNSTRINGREGEXP._serialized_end = 27618 + _SPCOLUMNSTRINGSTARTSWITH._serialized_start = 27620 + _SPCOLUMNSTRINGSTARTSWITH._serialized_end = 27728 + _SPCOLUMNSTRINGENDSWITH._serialized_start = 27730 + _SPCOLUMNSTRINGENDSWITH._serialized_end = 27836 + _SPCOLUMNSTRINGSUBSTR._serialized_start = 27838 + _SPCOLUMNSTRINGSUBSTR._serialized_end = 27963 + _SPCOLUMNSTRINGCOLLATE._serialized_start = 27965 + _SPCOLUMNSTRINGCOLLATE._serialized_end = 28078 + _SPCOLUMNSTRINGCONTAINS._serialized_start = 28080 + _SPCOLUMNSTRINGCONTAINS._serialized_end = 28187 + _SPDATAFRAMEEXPR._serialized_start = 28190 + _SPDATAFRAMEEXPR._serialized_end = 32016 + _SPDATAFRAMEREF._serialized_start = 32018 + _SPDATAFRAMEREF._serialized_end = 32089 + _SPDATAFRAMESHOW._serialized_start = 32091 + _SPDATAFRAMESHOW._serialized_end = 32163 + _SPCREATEDATAFRAME._serialized_start = 32166 + _SPCREATEDATAFRAME._serialized_end = 32295 + _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 32298 + _SPFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 32487 + _SPFLATTEN_COLUMN._serialized_start = 32489 + _SPFLATTEN_COLUMN._serialized_end = 32572 + _SPGENERATOR._serialized_start = 32574 + _SPGENERATOR._serialized_end = 32691 + _SPRANGE._serialized_start = 32694 + _SPRANGE._serialized_end = 32834 + _SPSQL._serialized_start = 32836 + _SPSQL._serialized_end = 32916 + _SPSTOREDPROCEDURE._serialized_start = 32918 + _SPSTOREDPROCEDURE._serialized_end = 33033 + _SPTABLE._serialized_start = 33035 + _SPTABLE._serialized_end = 33162 + _SPTABLEFUNCTION._serialized_start = 33164 + _SPTABLEFUNCTION._serialized_end = 33288 + _SPDATAFRAMETODF._serialized_start = 33290 + _SPDATAFRAMETODF._serialized_end = 33409 + _SPDATAFRAMENADROP_SCALA._serialized_start = 33412 + _SPDATAFRAMENADROP_SCALA._serialized_end = 33547 + _SPDATAFRAMENADROP_PYTHON._serialized_start = 33550 + _SPDATAFRAMENADROP_PYTHON._serialized_end = 33733 + _SPDATAFRAMENAFILL._serialized_start = 33736 + _SPDATAFRAMENAFILL._serialized_end = 33921 + _SPDATAFRAMENAREPLACE._serialized_start = 33924 + _SPDATAFRAMENAREPLACE._serialized_end = 34226 + _SPDATAFRAMEAGG._serialized_start = 34229 + _SPDATAFRAMEAGG._serialized_end = 34362 + _SPDATAFRAMEAPPLY._serialized_start = 34364 + _SPDATAFRAMEAPPLY._serialized_end = 34465 + _SPDATAFRAMECOL._serialized_start = 34467 + _SPDATAFRAMECOL._serialized_end = 34566 + _SPDATAFRAMECROSSJOIN._serialized_start = 34568 + _SPDATAFRAMECROSSJOIN._serialized_end = 34691 + _SPDATAFRAMECUBE._serialized_start = 34694 + _SPDATAFRAMECUBE._serialized_end = 34827 + _SPDATAFRAMEDISTINCT._serialized_start = 34829 + _SPDATAFRAMEDISTINCT._serialized_end = 34915 + _SPDATAFRAMEDROP_COLUMNS._serialized_start = 34918 + _SPDATAFRAMEDROP_COLUMNS._serialized_end = 35059 + _SPDATAFRAMEDROP_STRINGS._serialized_start = 35061 + _SPDATAFRAMEDROP_STRINGS._serialized_end = 35183 + _SPDATAFRAMEDROPDUPLICATES._serialized_start = 35185 + _SPDATAFRAMEDROPDUPLICATES._serialized_end = 35291 + _SPDATAFRAMEEXCEPT._serialized_start = 35293 + _SPDATAFRAMEEXCEPT._serialized_end = 35414 + _SPDATAFRAMEFILTER._serialized_start = 35416 + _SPDATAFRAMEFILTER._serialized_end = 35538 + _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_start = 35541 + _SPDATAFRAMEFLATTEN_COLUMN_STRING_BOOL_BOOL_STRING._serialized_end = 35773 + _SPDATAFRAMEFLATTEN_COLUMN._serialized_start = 35775 + _SPDATAFRAMEFLATTEN_COLUMN._serialized_end = 35901 + _SPDATAFRAMEFIRST._serialized_start = 35904 + _SPDATAFRAMEFIRST._serialized_end = 36065 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 36068 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 36212 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 36214 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 36339 + _SPDATAFRAMEGROUPBY._serialized_start = 36341 + _SPDATAFRAMEGROUPBY._serialized_end = 36426 + _SPDATAFRAMEINTERSECT._serialized_start = 36428 + _SPDATAFRAMEINTERSECT._serialized_end = 36552 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 36555 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 36825 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 36828 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 37104 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 37107 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 37323 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 37326 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 37562 + _SPDATAFRAMELIMIT._serialized_start = 37564 + _SPDATAFRAMELIMIT._serialized_end = 37658 + _SPDATAFRAMENATURALJOIN._serialized_start = 37661 + _SPDATAFRAMENATURALJOIN._serialized_end = 37822 + _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 37825 + _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 37988 + _SPDATAFRAMEPIVOT_STRING._serialized_start = 37991 + _SPDATAFRAMEPIVOT_STRING._serialized_end = 38135 + _SPDATAFRAMERANDOMSPLIT._serialized_start = 38138 + _SPDATAFRAMERANDOMSPLIT._serialized_end = 38337 + _SPDATAFRAMERENAME._serialized_start = 38340 + _SPDATAFRAMERENAME._serialized_end = 38474 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 38477 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 38620 + _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 38622 + _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 38746 + _SPDATAFRAMESAMPLE_DOUBLE._serialized_start = 38748 + _SPDATAFRAMESAMPLE_DOUBLE._serialized_end = 38869 + _SPDATAFRAMESAMPLE_LONG._serialized_start = 38871 + _SPDATAFRAMESAMPLE_LONG._serialized_end = 38973 + _SPDATAFRAMESELECT_COLUMNS._serialized_start = 38976 + _SPDATAFRAMESELECT_COLUMNS._serialized_end = 39111 + _SPDATAFRAMESELECT_STRINGS._serialized_start = 39113 + _SPDATAFRAMESELECT_STRINGS._serialized_end = 39237 + _SPDATAFRAMESORT._serialized_start = 39240 + _SPDATAFRAMESORT._serialized_end = 39373 + _SPDATAFRAMEUNION._serialized_start = 39375 + _SPDATAFRAMEUNION._serialized_end = 39494 + _SPDATAFRAMEUNIONALL._serialized_start = 39496 + _SPDATAFRAMEUNIONALL._serialized_end = 39618 + _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 39621 + _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 39749 + _SPDATAFRAMEUNIONBYNAME._serialized_start = 39751 + _SPDATAFRAMEUNIONBYNAME._serialized_end = 39876 + _SPDATAFRAMEWHERE._serialized_start = 39878 + _SPDATAFRAMEWHERE._serialized_end = 39999 + _SPDATAFRAMEWITHCOLUMN._serialized_start = 40002 + _SPDATAFRAMEWITHCOLUMN._serialized_end = 40140 + _SPDATAFRAMEWITHCOLUMNS._serialized_start = 40143 + _SPDATAFRAMEWITHCOLUMNS._serialized_end = 40286 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 40289 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 40448 + _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 40451 + _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 40967 + _SPDATAFRAMEREADEROPTIONS._serialized_start = 40969 + _SPDATAFRAMEREADEROPTIONS._serialized_end = 41023 + _SPDATAFRAMEREADERSCHEMA._serialized_start = 41025 + _SPDATAFRAMEREADERSCHEMA._serialized_end = 41078 + _SPREADAVRO._serialized_start = 41080 + _SPREADAVRO._serialized_end = 41137 + _SPREADCSV._serialized_start = 41139 + _SPREADCSV._serialized_end = 41195 + _SPREADJSON._serialized_start = 41197 + _SPREADJSON._serialized_end = 41254 + _SPREADORC._serialized_start = 41256 + _SPREADORC._serialized_end = 41312 + _SPREADPARQUET._serialized_start = 41314 + _SPREADPARQUET._serialized_end = 41374 + _SPREADTABLE._serialized_start = 41376 + _SPREADTABLE._serialized_end = 41434 + _SPREADXML._serialized_start = 41436 + _SPREADXML._serialized_end = 41492 + _SPCOPYINTO._serialized_start = 41495 + _SPCOPYINTO._serialized_end = 41698 + _SPDATAFRAMEWRITER._serialized_start = 41701 + _SPDATAFRAMEWRITER._serialized_end = 42064 + _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 42066 + _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 42121 + _SPDATAFRAMEWRITEROPTIONS._serialized_start = 42123 + _SPDATAFRAMEWRITEROPTIONS._serialized_end = 42177 + _SPWRITECSV._serialized_start = 42179 + _SPWRITECSV._serialized_end = 42270 + _SPWRITEJSON._serialized_start = 42272 + _SPWRITEJSON._serialized_end = 42364 + _SPWRITEPARQUET._serialized_start = 42366 + _SPWRITEPARQUET._serialized_end = 42461 + _SPWRITETABLE._serialized_start = 42464 + _SPWRITETABLE._serialized_end = 42613 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start = 42615 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end = 42681 + _SPDATAFRAMESTATSCORR._serialized_start = 42683 + _SPDATAFRAMESTATSCORR._serialized_end = 42739 + _SPDATAFRAMESTATSCOV._serialized_start = 42741 + _SPDATAFRAMESTATSCOV._serialized_end = 42796 + _SPDATAFRAMESTATSCROSSTAB._serialized_start = 42798 + _SPDATAFRAMESTATSCROSSTAB._serialized_end = 42917 + _SPDATAFRAMESTATSSAMPLEBY._serialized_start = 42920 + _SPDATAFRAMESTATSSAMPLEBY._serialized_end = 43101 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 43104 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 44713 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 44716 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 44909 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 44912 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 45087 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 45090 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 45243 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 45246 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 45394 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 45397 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 45567 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 45569 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 45686 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 45689 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 45837 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 45840 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 45989 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 45992 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 46143 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 46146 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 46294 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 46297 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 46445 + _SPDATAFRAMETYPE._serialized_start = 46447 + _SPDATAFRAMETYPE._serialized_end = 46505 + _SPGROUPEDDATAFRAMETYPE._serialized_start = 46507 + _SPGROUPEDDATAFRAMETYPE._serialized_end = 46577 + _SPWINDOWTYPE._serialized_start = 46579 + _SPWINDOWTYPE._serialized_end = 46593 + _SPCOLEXPRTYPE._serialized_start = 46595 + _SPCOLEXPRTYPE._serialized_end = 46634 + _HASSRCPOSITION._serialized_start = 46637 + _HASSRCPOSITION._serialized_end = 56343 + _STMT._serialized_start = 56345 + _STMT._serialized_end = 56420 + _ASSIGN._serialized_start = 56422 + _ASSIGN._serialized_end = 56542 + _EVAL._serialized_start = 56544 + _EVAL._serialized_end = 56591 + _TYPE._serialized_start = 56594 + _TYPE._serialized_end = 57554 + _UNKNOWNTYPE._serialized_start = 57556 + _UNKNOWNTYPE._serialized_end = 57569 + _ANYTYPE._serialized_start = 57571 + _ANYTYPE._serialized_end = 57580 + _SCALARTYPE._serialized_start = 57583 + _SCALARTYPE._serialized_end = 57884 + _NUMERICTYPE._serialized_start = 57887 + _NUMERICTYPE._serialized_end = 58069 + _NUMBERTYPE._serialized_start = 58071 + _NUMBERTYPE._serialized_end = 58083 + _NOTHINGTYPE._serialized_start = 58085 + _NOTHINGTYPE._serialized_end = 58098 + _UNITTYPE._serialized_start = 58100 + _UNITTYPE._serialized_end = 58110 + _BOOLTYPE._serialized_start = 58112 + _BOOLTYPE._serialized_end = 58122 + _INT32TYPE._serialized_start = 58124 + _INT32TYPE._serialized_end = 58135 + _INT64TYPE._serialized_start = 58137 + _INT64TYPE._serialized_end = 58148 + _FLOAT64TYPE._serialized_start = 58150 + _FLOAT64TYPE._serialized_end = 58163 + _STRINGTYPE._serialized_start = 58165 + _STRINGTYPE._serialized_end = 58177 + _PDREPRTYPE._serialized_start = 58179 + _PDREPRTYPE._serialized_end = 58191 + _FNTYPE._serialized_start = 58193 + _FNTYPE._serialized_end = 58252 + _OPTIONTYPE._serialized_start = 58254 + _OPTIONTYPE._serialized_end = 58290 + _TUPLETYPE._serialized_start = 58292 + _TUPLETYPE._serialized_end = 58327 + _LISTTYPE._serialized_start = 58329 + _LISTTYPE._serialized_end = 58363 + _MAPTYPE._serialized_start = 58365 + _MAPTYPE._serialized_end = 58418 + _TYVAR._serialized_start = 58420 + _TYVAR._serialized_end = 58439 # @@protoc_insertion_point(module_scope) From 262227ca4702f77aa7938a0d40f3f9a94274db06 Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Mon, 15 Jul 2024 18:19:39 -0700 Subject: [PATCH 09/10] update tests --- src/snowflake/snowpark/_internal/ast.py | 3 + src/snowflake/snowpark/_internal/ast_utils.py | 16 +- .../snowpark/_internal/proto/ast_pb2.py | 1152 +++++++++-------- src/snowflake/snowpark/dataframe.py | 11 +- .../snowpark/dataframe_na_functions.py | 7 +- src/snowflake/snowpark/session.py | 9 +- tests/ast/data/df_sample.test | 4 +- 7 files changed, 606 insertions(+), 596 deletions(-) diff --git a/src/snowflake/snowpark/_internal/ast.py b/src/snowflake/snowpark/_internal/ast.py index dc84c395e83..03816290a4b 100644 --- a/src/snowflake/snowpark/_internal/ast.py +++ b/src/snowflake/snowpark/_internal/ast.py @@ -13,6 +13,9 @@ from google.protobuf.json_format import ParseDict import snowflake.snowpark._internal.proto.ast_pb2 as proto +from snowflake.connector.arrow_context import ArrowConverterContext +from snowflake.connector.cursor import ResultMetadataV2 +from snowflake.connector.result_batch import ArrowResultBatch from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages from snowflake.snowpark.exceptions import SnowparkSQLException diff --git a/src/snowflake/snowpark/_internal/ast_utils.py b/src/snowflake/snowpark/_internal/ast_utils.py index 9d50c197627..bc7bd287ef0 100644 --- a/src/snowflake/snowpark/_internal/ast_utils.py +++ b/src/snowflake/snowpark/_internal/ast_utils.py @@ -21,9 +21,7 @@ MultipleExpression, UnresolvedAttribute, ) -from snowflake.snowpark._internal.analyzer.unary_expression import ( - Alias, -) +from snowflake.snowpark._internal.analyzer.unary_expression import Alias from snowflake.snowpark._internal.type_utils import ( VALID_PYTHON_TYPES_FOR_LITERAL_VALUE, ColumnOrLiteral, @@ -238,7 +236,7 @@ def set_src_position(src: proto.SrcPosition) -> None: if pos.lineno is not None: src.start_line = pos.lineno if pos.end_lineno is not None: - src.end_lineno = pos.end_lineno + src.end_line = pos.end_lineno if pos.col_offset is not None: src.start_column = pos.col_offset if pos.end_col_offset is not None: @@ -248,13 +246,17 @@ def set_src_position(src: proto.SrcPosition) -> None: assignment_re = re.compile(r"^\s*([a-zA-Z_]\w*)\s*=.*$", re.DOTALL) -def with_src_position(expr_ast: proto.Expr, assign: Optional[proto.Assign] = None) -> proto.Expr: +def with_src_position( + expr_ast: proto.Expr, assign: Optional[proto.Assign] = None +) -> proto.Expr: """ Sets the src_position on the supplied Expr AST node and returns it. N.B. This function assumes it's always invoked from a public API, meaning that the caller's caller is always the code of interest. """ - frame = get_first_non_snowpark_stack_frame() # TODO: implement the assumption above to minimize overhead. + frame = ( + get_first_non_snowpark_stack_frame() + ) # TODO: implement the assumption above to minimize overhead. source_line = frame.code_context[0].strip() if frame.code_context else "" src = expr_ast.src @@ -265,7 +267,7 @@ def with_src_position(expr_ast: proto.Expr, assign: Optional[proto.Assign] = Non if pos.lineno is not None: src.start_line = pos.lineno if pos.end_lineno is not None: - src.end_lineno = pos.end_lineno + src.end_line = pos.end_lineno if pos.col_offset is not None: src.start_column = pos.col_offset if pos.end_col_offset is not None: diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index 59d2d877064..f6a3017c96e 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -3,7 +3,7 @@ # # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: proto/ast.proto +# source: Snowpark/proto/ast.proto """Generated protocol buffer code.""" from google.protobuf import ( descriptor as _descriptor, @@ -29,578 +29,580 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b"\n\034com.snowflake.snowpark.proto" - _LIST_EXPR._serialized_start = 56 - _LIST_EXPR._serialized_end = 92 - _LIST_SPCOLUMNEXPR._serialized_start = 94 - _LIST_SPCOLUMNEXPR._serialized_end = 146 - _LIST_STRING._serialized_start = 148 - _LIST_STRING._serialized_end = 175 - _MAP_EXPR_EXPR._serialized_start = 177 - _MAP_EXPR_EXPR._serialized_end = 228 - _MAP_STRING_EXPR._serialized_start = 230 - _MAP_STRING_EXPR._serialized_end = 285 - _MAP_STRING_SPVARIANT._serialized_start = 287 - _MAP_STRING_SPVARIANT._serialized_end = 352 - _MAP_STRING_STRING._serialized_start = 354 - _MAP_STRING_STRING._serialized_end = 413 - _TUPLE_EXPR_EXPR._serialized_start = 415 - _TUPLE_EXPR_EXPR._serialized_end = 478 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start = 480 - _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end = 577 - _TUPLE_STRING_EXPR._serialized_start = 579 - _TUPLE_STRING_EXPR._serialized_end = 633 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 635 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 705 - _TUPLE_STRING_SPVARIANT._serialized_start = 707 - _TUPLE_STRING_SPVARIANT._serialized_end = 771 - _TUPLE_STRING_STRING._serialized_start = 773 - _TUPLE_STRING_STRING._serialized_end = 818 - _LANGUAGE._serialized_start = 821 - _LANGUAGE._serialized_end = 985 - _PYTHONLANGUAGE._serialized_start = 987 - _PYTHONLANGUAGE._serialized_end = 1034 - _SCALALANGUAGE._serialized_start = 1036 - _SCALALANGUAGE._serialized_end = 1082 - _JAVALANGUAGE._serialized_start = 1084 - _JAVALANGUAGE._serialized_end = 1129 - _VERSION._serialized_start = 1131 - _VERSION._serialized_end = 1200 - _PYTHONTIMEZONE._serialized_start = 1202 - _PYTHONTIMEZONE._serialized_end = 1286 - _PDINDEXEXPR._serialized_start = 1288 - _PDINDEXEXPR._serialized_end = 1401 - _ORD._serialized_start = 1403 - _ORD._serialized_end = 1430 - _FLEXORD._serialized_start = 1432 - _FLEXORD._serialized_end = 1463 - _KEY._serialized_start = 1465 - _KEY._serialized_end = 1492 - _PDPROJECTINDEXEXPR._serialized_start = 1495 - _PDPROJECTINDEXEXPR._serialized_end = 1808 - _ORDRANGE._serialized_start = 1810 - _ORDRANGE._serialized_end = 1896 - _FLEXORDRANGE._serialized_start = 1898 - _FLEXORDRANGE._serialized_end = 1988 - _KEYRANGE._serialized_start = 1990 - _KEYRANGE._serialized_end = 2051 - _ORDLIST._serialized_start = 2053 - _ORDLIST._serialized_end = 2087 - _FLEXORDLIST._serialized_start = 2089 - _FLEXORDLIST._serialized_end = 2127 - _KEYLIST._serialized_start = 2129 - _KEYLIST._serialized_end = 2163 - _BOOLFILTERLIST._serialized_start = 2165 - _BOOLFILTERLIST._serialized_end = 2208 - _SPFLATTENMODE._serialized_start = 2210 - _SPFLATTENMODE._serialized_end = 2335 - _SPTABLENAME._serialized_start = 2338 - _SPTABLENAME._serialized_end = 2483 - _SPTABLENAMEFLAT._serialized_start = 2485 - _SPTABLENAMEFLAT._serialized_end = 2516 - _SPTABLENAMESTRUCTURED._serialized_start = 2518 - _SPTABLENAMESTRUCTURED._serialized_end = 2555 - _SPTABLEVARIANT._serialized_start = 2557 - _SPTABLEVARIANT._serialized_end = 2637 - _SPGROUPINGSETS._serialized_start = 2639 - _SPGROUPINGSETS._serialized_end = 2693 - _SPSAVEMODE._serialized_start = 2696 - _SPSAVEMODE._serialized_end = 2855 - _SPJOINTYPE._serialized_start = 2858 - _SPJOINTYPE._serialized_end = 3152 - _SPWINDOWSPECEXPR._serialized_start = 3155 - _SPWINDOWSPECEXPR._serialized_end = 3616 - _SPWINDOWSPECORDERBY._serialized_start = 3618 - _SPWINDOWSPECORDERBY._serialized_end = 3708 - _SPWINDOWSPECPARTITIONBY._serialized_start = 3710 - _SPWINDOWSPECPARTITIONBY._serialized_end = 3804 - _SPWINDOWSPECRANGEBETWEEN._serialized_start = 3806 - _SPWINDOWSPECRANGEBETWEEN._serialized_end = 3896 - _SPWINDOWSPECROWSBETWEEN._serialized_start = 3898 - _SPWINDOWSPECROWSBETWEEN._serialized_end = 3987 - _SPTIMESTAMPTIMEZONE._serialized_start = 3990 - _SPTIMESTAMPTIMEZONE._serialized_end = 4177 - _SPDATATYPE._serialized_start = 4180 - _SPDATATYPE._serialized_end = 4982 - _SPARRAYTYPE._serialized_start = 4984 - _SPARRAYTYPE._serialized_end = 5046 - _SPCOLUMNIDENTIFIER._serialized_start = 5048 - _SPCOLUMNIDENTIFIER._serialized_end = 5082 - _SPDECIMALTYPE._serialized_start = 5084 - _SPDECIMALTYPE._serialized_end = 5133 - _SPMAPTYPE._serialized_start = 5135 - _SPMAPTYPE._serialized_end = 5234 - _SPSTRINGTYPE._serialized_start = 5236 - _SPSTRINGTYPE._serialized_end = 5295 - _SPSTRUCTFIELD._serialized_start = 5297 - _SPSTRUCTFIELD._serialized_end = 5418 - _SPSTRUCTTYPE._serialized_start = 5420 - _SPSTRUCTTYPE._serialized_end = 5490 - _SPTIMESTAMPTYPE._serialized_start = 5492 - _SPTIMESTAMPTYPE._serialized_end = 5554 - _SPVECTORTYPE._serialized_start = 5556 - _SPVECTORTYPE._serialized_end = 5618 - _SPVARIANT._serialized_start = 5621 - _SPVARIANT._serialized_end = 6327 - _SPVARIANT_OBJECT._serialized_start = 6329 - _SPVARIANT_OBJECT._serialized_end = 6384 - _SPVARIANT_LIST._serialized_start = 6386 - _SPVARIANT_LIST._serialized_end = 6437 - _SPVARIANT_TIMESTAMP._serialized_start = 6439 - _SPVARIANT_TIMESTAMP._serialized_end = 6471 - _SPVARIANT_DATE._serialized_start = 6473 - _SPVARIANT_DATE._serialized_end = 6500 - _SPVARIANT_TIME._serialized_start = 6502 - _SPVARIANT_TIME._serialized_end = 6529 - _SPVARIANT_BYTES._serialized_start = 6531 - _SPVARIANT_BYTES._serialized_end = 6559 - _SPVARIANT_STRING._serialized_start = 6561 - _SPVARIANT_STRING._serialized_end = 6590 - _SPVARIANT_BOOL._serialized_start = 6592 - _SPVARIANT_BOOL._serialized_end = 6619 - _SPVARIANT_BIGINT._serialized_start = 6621 - _SPVARIANT_BIGINT._serialized_end = 6650 - _SPVARIANT_BIGDECIMAL._serialized_start = 6652 - _SPVARIANT_BIGDECIMAL._serialized_end = 6685 - _SPVARIANT_INT._serialized_start = 6687 - _SPVARIANT_INT._serialized_end = 6713 - _SPVARIANT_FLOAT._serialized_start = 6715 - _SPVARIANT_FLOAT._serialized_end = 6743 - _SPVARIANT_DOUBLE._serialized_start = 6745 - _SPVARIANT_DOUBLE._serialized_end = 6774 - _SPROW._serialized_start = 6776 - _SPROW._serialized_end = 6811 - _SRCPOSITION._serialized_start = 6813 - _SRCPOSITION._serialized_end = 6920 - _VARID._serialized_start = 6922 - _VARID._serialized_end = 6948 - _REQUEST._serialized_start = 6950 - _REQUEST._serialized_end = 7062 - _RESPONSE._serialized_start = 7064 - _RESPONSE._serialized_end = 7101 - _CONST._serialized_start = 7104 - _CONST._serialized_end = 7791 - _NONEVAL._serialized_start = 7793 - _NONEVAL._serialized_end = 7833 - _NULLVAL._serialized_start = 7835 - _NULLVAL._serialized_end = 7875 - _BOOLVAL._serialized_start = 7877 - _BOOLVAL._serialized_end = 7928 - _INT32VAL._serialized_start = 7930 - _INT32VAL._serialized_end = 7982 - _INT64VAL._serialized_start = 7984 - _INT64VAL._serialized_end = 8036 - _FLOAT64VAL._serialized_start = 8038 - _FLOAT64VAL._serialized_end = 8092 - _BIGINTVAL._serialized_start = 8094 - _BIGINTVAL._serialized_end = 8147 - _BIGDECIMALVAL._serialized_start = 8149 - _BIGDECIMALVAL._serialized_end = 8234 - _STRINGVAL._serialized_start = 8236 - _STRINGVAL._serialized_end = 8289 - _BINARYVAL._serialized_start = 8291 - _BINARYVAL._serialized_end = 8344 - _TIMESTAMPVAL._serialized_start = 8346 - _TIMESTAMPVAL._serialized_end = 8402 - _DATEVAL._serialized_start = 8404 - _DATEVAL._serialized_end = 8455 - _TIMEVAL._serialized_start = 8457 - _TIMEVAL._serialized_end = 8508 - _PYTHONTIMESTAMPVAL._serialized_start = 8511 - _PYTHONTIMESTAMPVAL._serialized_end = 8704 - _PYTHONDATEVAL._serialized_start = 8706 - _PYTHONDATEVAL._serialized_end = 8794 - _PYTHONTIMEVAL._serialized_start = 8797 - _PYTHONTIMEVAL._serialized_end = 8943 - _FNVAL._serialized_start = 8945 - _FNVAL._serialized_end = 9024 - _IFEXPR._serialized_start = 9026 - _IFEXPR._serialized_end = 9147 - _SOMEVAL._serialized_start = 9149 - _SOMEVAL._serialized_end = 9211 - _TUPLEVAL._serialized_start = 9213 - _TUPLEVAL._serialized_end = 9277 - _LISTVAL._serialized_start = 9279 - _LISTVAL._serialized_end = 9342 - _SEQMAPVAL._serialized_start = 9344 - _SEQMAPVAL._serialized_end = 9414 - _APPLYEXPR._serialized_start = 9417 - _APPLYEXPR._serialized_end = 9659 - _BUILTINFN._serialized_start = 9661 - _BUILTINFN._serialized_end = 9717 - _STOREDPROCEDURE._serialized_start = 9719 - _STOREDPROCEDURE._serialized_end = 9781 - _UDF._serialized_start = 9783 - _UDF._serialized_end = 9833 - _UDTF._serialized_start = 9835 - _UDTF._serialized_end = 9886 - _UNARYOP._serialized_start = 9888 - _UNARYOP._serialized_end = 9958 - _BINOP._serialized_start = 9961 - _BINOP._serialized_end = 10415 - _NOT._serialized_start = 10417 - _NOT._serialized_end = 10481 - _AND._serialized_start = 10483 - _AND._serialized_end = 10567 - _OR._serialized_start = 10569 - _OR._serialized_end = 10652 - _EQ._serialized_start = 10654 - _EQ._serialized_end = 10737 - _NEQ._serialized_start = 10739 - _NEQ._serialized_end = 10823 - _LT._serialized_start = 10825 - _LT._serialized_end = 10908 - _LEQ._serialized_start = 10910 - _LEQ._serialized_end = 10994 - _GT._serialized_start = 10996 - _GT._serialized_end = 11079 - _GEQ._serialized_start = 11081 - _GEQ._serialized_end = 11165 - _NEG._serialized_start = 11167 - _NEG._serialized_end = 11231 - _ADD._serialized_start = 11233 - _ADD._serialized_end = 11317 - _SUB._serialized_start = 11319 - _SUB._serialized_end = 11403 - _MUL._serialized_start = 11405 - _MUL._serialized_end = 11489 - _DIV._serialized_start = 11491 - _DIV._serialized_end = 11575 - _MOD._serialized_start = 11577 - _MOD._serialized_end = 11661 - _POW._serialized_start = 11663 - _POW._serialized_end = 11747 - _BITAND._serialized_start = 11749 - _BITAND._serialized_end = 11836 - _BITOR._serialized_start = 11838 - _BITOR._serialized_end = 11924 - _BITXOR._serialized_start = 11926 - _BITXOR._serialized_end = 12013 - _RANGEVAL._serialized_start = 12015 - _RANGEVAL._serialized_end = 12132 - _EXPR._serialized_start = 12135 - _EXPR._serialized_end = 21397 - _REF._serialized_start = 21399 - _REF._serialized_end = 21463 - _CASTEXPR._serialized_start = 21465 - _CASTEXPR._serialized_end = 21552 - _PDDATAFRAME._serialized_start = 21555 - _PDDATAFRAME._serialized_end = 21704 - _PDDROPNA._serialized_start = 21707 - _PDDROPNA._serialized_end = 21849 - _PDDATAFRAMEGETITEM._serialized_start = 21851 - _PDDATAFRAMEGETITEM._serialized_end = 21952 - _PDDATAFRAMESETITEM._serialized_start = 21954 - _PDDATAFRAMESETITEM._serialized_end = 22077 - _PDDATAFRAMELOC._serialized_start = 22079 - _PDDATAFRAMELOC._serialized_end = 22201 - _PDDATAFRAMEILOC._serialized_start = 22203 - _PDDATAFRAMEILOC._serialized_end = 22326 - _PDREPR._serialized_start = 22328 - _PDREPR._serialized_end = 22442 - _PDREPRRESULT._serialized_start = 22444 - _PDREPRRESULT._serialized_end = 22561 - _RESULT._serialized_start = 22564 - _RESULT._serialized_end = 22722 - _EVALRESULT._serialized_start = 22725 - _EVALRESULT._serialized_end = 23497 - _EVALOK._serialized_start = 23499 - _EVALOK._serialized_end = 23579 - _ERROR._serialized_start = 23581 - _ERROR._serialized_end = 23671 - _SESSIONRESETREQUIREDERROR._serialized_start = 23673 - _SESSIONRESETREQUIREDERROR._serialized_end = 23741 - _SPCOLUMNEXPR._serialized_start = 23744 - _SPCOLUMNEXPR._serialized_end = 24022 - _SPCOLUMNREF._serialized_start = 24024 - _SPCOLUMNREF._serialized_end = 24080 - _SPCOLUMNSQLEXPR._serialized_start = 24082 - _SPCOLUMNSQLEXPR._serialized_end = 24191 - _SPCOLUMNFN._serialized_start = 24194 - _SPCOLUMNFN._serialized_end = 25491 - _SPCOLUMNALIAS._serialized_start = 25494 - _SPCOLUMNALIAS._serialized_end = 25629 - _SPCOLUMNAPPLY_INT._serialized_start = 25631 - _SPCOLUMNAPPLY_INT._serialized_end = 25718 - _SPCOLUMNAPPLY_STRING._serialized_start = 25720 - _SPCOLUMNAPPLY_STRING._serialized_end = 25812 - _SPCOLUMNASC._serialized_start = 25814 - _SPCOLUMNASC._serialized_end = 25931 - _SPCOLUMNBETWEEN._serialized_start = 25934 - _SPCOLUMNBETWEEN._serialized_end = 26070 - _SPCOLUMNCAST._serialized_start = 26072 - _SPCOLUMNCAST._serialized_end = 26170 - _SPCOLUMNTRYCAST._serialized_start = 26172 - _SPCOLUMNTRYCAST._serialized_end = 26273 - _SPCOLUMNDESC._serialized_start = 26275 - _SPCOLUMNDESC._serialized_end = 26393 - _SPCOLUMNEQUALNAN._serialized_start = 26395 - _SPCOLUMNEQUALNAN._serialized_end = 26468 - _SPCOLUMNEQUALNULL._serialized_start = 26470 - _SPCOLUMNEQUALNULL._serialized_end = 26568 - _SPCOLUMNIN_DATAFRAME._serialized_start = 26570 - _SPCOLUMNIN_DATAFRAME._serialized_end = 26681 - _SPCOLUMNIN_SEQ._serialized_start = 26683 - _SPCOLUMNIN_SEQ._serialized_end = 26781 - _SPCOLUMNISNOTNULL._serialized_start = 26783 - _SPCOLUMNISNOTNULL._serialized_end = 26857 - _SPCOLUMNISNULL._serialized_start = 26859 - _SPCOLUMNISNULL._serialized_end = 26930 - _SPCOLUMNNAME._serialized_start = 26932 - _SPCOLUMNNAME._serialized_end = 27016 - _SPCOLUMNOVER._serialized_start = 27018 - _SPCOLUMNOVER._serialized_end = 27131 - _SPCOLUMNWITHINGROUP._serialized_start = 27133 - _SPCOLUMNWITHINGROUP._serialized_end = 27252 - _SPCOLUMNSTRINGLIKE._serialized_start = 27254 - _SPCOLUMNSTRINGLIKE._serialized_end = 27357 - _SPCOLUMNSTRINGREGEXP._serialized_start = 27359 - _SPCOLUMNSTRINGREGEXP._serialized_end = 27464 - _SPCOLUMNSTRINGSTARTSWITH._serialized_start = 27466 - _SPCOLUMNSTRINGSTARTSWITH._serialized_end = 27574 - _SPCOLUMNSTRINGENDSWITH._serialized_start = 27576 - _SPCOLUMNSTRINGENDSWITH._serialized_end = 27682 - _SPCOLUMNSTRINGSUBSTR._serialized_start = 27684 - _SPCOLUMNSTRINGSUBSTR._serialized_end = 27809 - _SPCOLUMNSTRINGCOLLATE._serialized_start = 27811 - _SPCOLUMNSTRINGCOLLATE._serialized_end = 27924 - _SPCOLUMNSTRINGCONTAINS._serialized_start = 27926 - _SPCOLUMNSTRINGCONTAINS._serialized_end = 28033 - _SPDATAFRAMEEXPR._serialized_start = 28036 - _SPDATAFRAMEEXPR._serialized_end = 31484 - _SPDATAFRAMEREF._serialized_start = 31486 - _SPDATAFRAMEREF._serialized_end = 31557 - _SPDATAFRAMESHOW._serialized_start = 31559 - _SPDATAFRAMESHOW._serialized_end = 31631 - _SPCREATEDATAFRAME._serialized_start = 31634 - _SPCREATEDATAFRAME._serialized_end = 31763 - _SPFLATTEN._serialized_start = 31766 - _SPFLATTEN._serialized_end = 31946 - _SPGENERATOR._serialized_start = 31948 - _SPGENERATOR._serialized_end = 32065 - _SPRANGE._serialized_start = 32068 - _SPRANGE._serialized_end = 32208 - _SPSQL._serialized_start = 32210 - _SPSQL._serialized_end = 32290 - _SPSTOREDPROCEDURE._serialized_start = 32292 - _SPSTOREDPROCEDURE._serialized_end = 32407 - _SPTABLE._serialized_start = 32409 - _SPTABLE._serialized_end = 32519 - _SPTABLEFUNCTION._serialized_start = 32521 - _SPTABLEFUNCTION._serialized_end = 32645 - _SPDATAFRAMETODF._serialized_start = 32647 - _SPDATAFRAMETODF._serialized_end = 32766 - _SPDATAFRAMENADROP_SCALA._serialized_start = 32769 - _SPDATAFRAMENADROP_SCALA._serialized_end = 32904 - _SPDATAFRAMENADROP_PYTHON._serialized_start = 32907 - _SPDATAFRAMENADROP_PYTHON._serialized_end = 33090 - _SPDATAFRAMENAFILL._serialized_start = 33093 - _SPDATAFRAMENAFILL._serialized_end = 33278 - _SPDATAFRAMENAREPLACE._serialized_start = 33281 - _SPDATAFRAMENAREPLACE._serialized_end = 33583 - _SPDATAFRAMEAGG._serialized_start = 33586 - _SPDATAFRAMEAGG._serialized_end = 33719 - _SPDATAFRAMEAPPLY._serialized_start = 33721 - _SPDATAFRAMEAPPLY._serialized_end = 33822 - _SPDATAFRAMECOL._serialized_start = 33824 - _SPDATAFRAMECOL._serialized_end = 33923 - _SPDATAFRAMECROSSJOIN._serialized_start = 33925 - _SPDATAFRAMECROSSJOIN._serialized_end = 34048 - _SPDATAFRAMECUBE._serialized_start = 34051 - _SPDATAFRAMECUBE._serialized_end = 34184 - _SPDATAFRAMEDISTINCT._serialized_start = 34186 - _SPDATAFRAMEDISTINCT._serialized_end = 34272 - _SPDATAFRAMEDROP_COLUMNS._serialized_start = 34275 - _SPDATAFRAMEDROP_COLUMNS._serialized_end = 34416 - _SPDATAFRAMEDROP_STRINGS._serialized_start = 34418 - _SPDATAFRAMEDROP_STRINGS._serialized_end = 34540 - _SPDATAFRAMEDROPDUPLICATES._serialized_start = 34542 - _SPDATAFRAMEDROPDUPLICATES._serialized_end = 34648 - _SPDATAFRAMEEXCEPT._serialized_start = 34650 - _SPDATAFRAMEEXCEPT._serialized_end = 34771 - _SPDATAFRAMEFILTER._serialized_start = 34773 - _SPDATAFRAMEFILTER._serialized_end = 34895 - _SPDATAFRAMEFLATTEN._serialized_start = 34898 - _SPDATAFRAMEFLATTEN._serialized_end = 35121 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 35124 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 35268 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 35270 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 35395 - _SPDATAFRAMEGROUPBY._serialized_start = 35397 - _SPDATAFRAMEGROUPBY._serialized_end = 35482 - _SPDATAFRAMEINTERSECT._serialized_start = 35484 - _SPDATAFRAMEINTERSECT._serialized_end = 35608 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 35611 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 35881 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 35884 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 36160 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 36163 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 36379 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 36382 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 36618 - _SPDATAFRAMELIMIT._serialized_start = 36620 - _SPDATAFRAMELIMIT._serialized_end = 36714 - _SPDATAFRAMENATURALJOIN._serialized_start = 36717 - _SPDATAFRAMENATURALJOIN._serialized_end = 36878 - _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 36881 - _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 37044 - _SPDATAFRAMEPIVOT_STRING._serialized_start = 37047 - _SPDATAFRAMEPIVOT_STRING._serialized_end = 37191 - _SPDATAFRAMERENAME._serialized_start = 37194 - _SPDATAFRAMERENAME._serialized_end = 37328 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 37331 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 37474 - _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 37476 - _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 37600 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_start = 37602 - _SPDATAFRAMESAMPLE_DOUBLE._serialized_end = 37723 - _SPDATAFRAMESAMPLE_LONG._serialized_start = 37725 - _SPDATAFRAMESAMPLE_LONG._serialized_end = 37827 - _SPDATAFRAMESELECT_COLUMNS._serialized_start = 37830 - _SPDATAFRAMESELECT_COLUMNS._serialized_end = 37965 - _SPDATAFRAMESELECT_STRINGS._serialized_start = 37967 - _SPDATAFRAMESELECT_STRINGS._serialized_end = 38091 - _SPDATAFRAMESORT._serialized_start = 38094 - _SPDATAFRAMESORT._serialized_end = 38227 - _SPDATAFRAMEUNION._serialized_start = 38229 - _SPDATAFRAMEUNION._serialized_end = 38348 - _SPDATAFRAMEUNIONALL._serialized_start = 38350 - _SPDATAFRAMEUNIONALL._serialized_end = 38472 - _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 38475 - _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 38603 - _SPDATAFRAMEUNIONBYNAME._serialized_start = 38605 - _SPDATAFRAMEUNIONBYNAME._serialized_end = 38730 - _SPDATAFRAMEWHERE._serialized_start = 38732 - _SPDATAFRAMEWHERE._serialized_end = 38853 - _SPDATAFRAMEWITHCOLUMN._serialized_start = 38856 - _SPDATAFRAMEWITHCOLUMN._serialized_end = 38994 - _SPDATAFRAMEWITHCOLUMNS._serialized_start = 38997 - _SPDATAFRAMEWITHCOLUMNS._serialized_end = 39140 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 39143 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 39302 - _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 39305 - _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 39821 - _SPDATAFRAMEREADEROPTIONS._serialized_start = 39823 - _SPDATAFRAMEREADEROPTIONS._serialized_end = 39877 - _SPDATAFRAMEREADERSCHEMA._serialized_start = 39879 - _SPDATAFRAMEREADERSCHEMA._serialized_end = 39932 - _SPREADAVRO._serialized_start = 39934 - _SPREADAVRO._serialized_end = 39991 - _SPREADCSV._serialized_start = 39993 - _SPREADCSV._serialized_end = 40049 - _SPREADJSON._serialized_start = 40051 - _SPREADJSON._serialized_end = 40108 - _SPREADORC._serialized_start = 40110 - _SPREADORC._serialized_end = 40166 - _SPREADPARQUET._serialized_start = 40168 - _SPREADPARQUET._serialized_end = 40228 - _SPREADTABLE._serialized_start = 40230 - _SPREADTABLE._serialized_end = 40288 - _SPREADXML._serialized_start = 40290 - _SPREADXML._serialized_end = 40346 - _SPCOPYINTO._serialized_start = 40349 - _SPCOPYINTO._serialized_end = 40552 - _SPDATAFRAMEWRITER._serialized_start = 40555 - _SPDATAFRAMEWRITER._serialized_end = 40918 - _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 40920 - _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 40975 - _SPDATAFRAMEWRITEROPTIONS._serialized_start = 40977 - _SPDATAFRAMEWRITEROPTIONS._serialized_end = 41031 - _SPWRITECSV._serialized_start = 41033 - _SPWRITECSV._serialized_end = 41124 - _SPWRITEJSON._serialized_start = 41126 - _SPWRITEJSON._serialized_end = 41218 - _SPWRITEPARQUET._serialized_start = 41220 - _SPWRITEPARQUET._serialized_end = 41315 - _SPWRITETABLE._serialized_start = 41318 - _SPWRITETABLE._serialized_end = 41467 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start = 41469 - _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end = 41535 - _SPDATAFRAMESTATSCORR._serialized_start = 41537 - _SPDATAFRAMESTATSCORR._serialized_end = 41593 - _SPDATAFRAMESTATSCOV._serialized_start = 41595 - _SPDATAFRAMESTATSCOV._serialized_end = 41650 - _SPDATAFRAMESTATSCROSSTAB._serialized_start = 41652 - _SPDATAFRAMESTATSCROSSTAB._serialized_end = 41771 - _SPDATAFRAMESTATSSAMPLEBY._serialized_start = 41774 - _SPDATAFRAMESTATSSAMPLEBY._serialized_end = 41955 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 41958 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 43567 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 43570 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 43763 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 43766 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 43941 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 43944 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 44097 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 44100 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 44248 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 44251 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 44421 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 44423 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 44540 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 44543 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 44691 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 44694 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 44843 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 44846 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 44997 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 45000 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 45148 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 45151 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 45299 - _SPDATAFRAMETYPE._serialized_start = 45301 - _SPDATAFRAMETYPE._serialized_end = 45359 - _SPGROUPEDDATAFRAMETYPE._serialized_start = 45361 - _SPGROUPEDDATAFRAMETYPE._serialized_end = 45431 - _SPWINDOWTYPE._serialized_start = 45433 - _SPWINDOWTYPE._serialized_end = 45447 - _SPCOLEXPRTYPE._serialized_start = 45449 - _SPCOLEXPRTYPE._serialized_end = 45488 - _HASSRCPOSITION._serialized_start = 45491 - _HASSRCPOSITION._serialized_end = 54797 - _STMT._serialized_start = 54799 - _STMT._serialized_end = 54874 - _ASSIGN._serialized_start = 54876 - _ASSIGN._serialized_end = 54996 - _EVAL._serialized_start = 54998 - _EVAL._serialized_end = 55045 - _TYPE._serialized_start = 55048 - _TYPE._serialized_end = 56008 - _UNKNOWNTYPE._serialized_start = 56010 - _UNKNOWNTYPE._serialized_end = 56023 - _ANYTYPE._serialized_start = 56025 - _ANYTYPE._serialized_end = 56034 - _SCALARTYPE._serialized_start = 56037 - _SCALARTYPE._serialized_end = 56338 - _NUMERICTYPE._serialized_start = 56341 - _NUMERICTYPE._serialized_end = 56523 - _NUMBERTYPE._serialized_start = 56525 - _NUMBERTYPE._serialized_end = 56537 - _NOTHINGTYPE._serialized_start = 56539 - _NOTHINGTYPE._serialized_end = 56552 - _UNITTYPE._serialized_start = 56554 - _UNITTYPE._serialized_end = 56564 - _BOOLTYPE._serialized_start = 56566 - _BOOLTYPE._serialized_end = 56576 - _INT32TYPE._serialized_start = 56578 - _INT32TYPE._serialized_end = 56589 - _INT64TYPE._serialized_start = 56591 - _INT64TYPE._serialized_end = 56602 - _FLOAT64TYPE._serialized_start = 56604 - _FLOAT64TYPE._serialized_end = 56617 - _STRINGTYPE._serialized_start = 56619 - _STRINGTYPE._serialized_end = 56631 - _PDREPRTYPE._serialized_start = 56633 - _PDREPRTYPE._serialized_end = 56645 - _FNTYPE._serialized_start = 56647 - _FNTYPE._serialized_end = 56706 - _OPTIONTYPE._serialized_start = 56708 - _OPTIONTYPE._serialized_end = 56744 - _TUPLETYPE._serialized_start = 56746 - _TUPLETYPE._serialized_end = 56781 - _LISTTYPE._serialized_start = 56783 - _LISTTYPE._serialized_end = 56817 - _MAPTYPE._serialized_start = 56819 - _MAPTYPE._serialized_end = 56872 - _TYVAR._serialized_start = 56874 - _TYVAR._serialized_end = 56893 + _LIST_EXPR._serialized_start = 65 + _LIST_EXPR._serialized_end = 101 + _LIST_SPCOLUMNEXPR._serialized_start = 103 + _LIST_SPCOLUMNEXPR._serialized_end = 155 + _LIST_STRING._serialized_start = 157 + _LIST_STRING._serialized_end = 184 + _MAP_EXPR_EXPR._serialized_start = 186 + _MAP_EXPR_EXPR._serialized_end = 237 + _MAP_STRING_EXPR._serialized_start = 239 + _MAP_STRING_EXPR._serialized_end = 294 + _MAP_STRING_SPVARIANT._serialized_start = 296 + _MAP_STRING_SPVARIANT._serialized_end = 361 + _MAP_STRING_STRING._serialized_start = 363 + _MAP_STRING_STRING._serialized_end = 422 + _TUPLE_EXPR_EXPR._serialized_start = 424 + _TUPLE_EXPR_EXPR._serialized_end = 487 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_start = 489 + _TUPLE_SPVARIANT_SPVARIANT_DOUBLE._serialized_end = 586 + _TUPLE_STRING_EXPR._serialized_start = 588 + _TUPLE_STRING_EXPR._serialized_end = 642 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 644 + _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 714 + _TUPLE_STRING_SPVARIANT._serialized_start = 716 + _TUPLE_STRING_SPVARIANT._serialized_end = 780 + _TUPLE_STRING_STRING._serialized_start = 782 + _TUPLE_STRING_STRING._serialized_end = 827 + _LANGUAGE._serialized_start = 830 + _LANGUAGE._serialized_end = 994 + _PYTHONLANGUAGE._serialized_start = 996 + _PYTHONLANGUAGE._serialized_end = 1043 + _SCALALANGUAGE._serialized_start = 1045 + _SCALALANGUAGE._serialized_end = 1091 + _JAVALANGUAGE._serialized_start = 1093 + _JAVALANGUAGE._serialized_end = 1138 + _VERSION._serialized_start = 1140 + _VERSION._serialized_end = 1209 + _PYTHONTIMEZONE._serialized_start = 1211 + _PYTHONTIMEZONE._serialized_end = 1295 + _PDINDEXEXPR._serialized_start = 1297 + _PDINDEXEXPR._serialized_end = 1410 + _ORD._serialized_start = 1412 + _ORD._serialized_end = 1439 + _FLEXORD._serialized_start = 1441 + _FLEXORD._serialized_end = 1472 + _KEY._serialized_start = 1474 + _KEY._serialized_end = 1501 + _PDPROJECTINDEXEXPR._serialized_start = 1504 + _PDPROJECTINDEXEXPR._serialized_end = 1817 + _ORDRANGE._serialized_start = 1819 + _ORDRANGE._serialized_end = 1905 + _FLEXORDRANGE._serialized_start = 1907 + _FLEXORDRANGE._serialized_end = 1997 + _KEYRANGE._serialized_start = 1999 + _KEYRANGE._serialized_end = 2060 + _ORDLIST._serialized_start = 2062 + _ORDLIST._serialized_end = 2096 + _FLEXORDLIST._serialized_start = 2098 + _FLEXORDLIST._serialized_end = 2136 + _KEYLIST._serialized_start = 2138 + _KEYLIST._serialized_end = 2172 + _BOOLFILTERLIST._serialized_start = 2174 + _BOOLFILTERLIST._serialized_end = 2217 + _SPFLATTENMODE._serialized_start = 2219 + _SPFLATTENMODE._serialized_end = 2344 + _SPTABLENAME._serialized_start = 2347 + _SPTABLENAME._serialized_end = 2492 + _SPTABLENAMEFLAT._serialized_start = 2494 + _SPTABLENAMEFLAT._serialized_end = 2525 + _SPTABLENAMESTRUCTURED._serialized_start = 2527 + _SPTABLENAMESTRUCTURED._serialized_end = 2564 + _SPTABLEVARIANT._serialized_start = 2566 + _SPTABLEVARIANT._serialized_end = 2646 + _SPGROUPINGSETS._serialized_start = 2648 + _SPGROUPINGSETS._serialized_end = 2702 + _SPSAVEMODE._serialized_start = 2705 + _SPSAVEMODE._serialized_end = 2864 + _SPJOINTYPE._serialized_start = 2867 + _SPJOINTYPE._serialized_end = 3161 + _SPWINDOWSPECEXPR._serialized_start = 3164 + _SPWINDOWSPECEXPR._serialized_end = 3625 + _SPWINDOWSPECORDERBY._serialized_start = 3627 + _SPWINDOWSPECORDERBY._serialized_end = 3717 + _SPWINDOWSPECPARTITIONBY._serialized_start = 3719 + _SPWINDOWSPECPARTITIONBY._serialized_end = 3813 + _SPWINDOWSPECRANGEBETWEEN._serialized_start = 3815 + _SPWINDOWSPECRANGEBETWEEN._serialized_end = 3905 + _SPWINDOWSPECROWSBETWEEN._serialized_start = 3907 + _SPWINDOWSPECROWSBETWEEN._serialized_end = 3996 + _SPTIMESTAMPTIMEZONE._serialized_start = 3999 + _SPTIMESTAMPTIMEZONE._serialized_end = 4186 + _SPDATATYPE._serialized_start = 4189 + _SPDATATYPE._serialized_end = 4991 + _SPARRAYTYPE._serialized_start = 4993 + _SPARRAYTYPE._serialized_end = 5055 + _SPCOLUMNIDENTIFIER._serialized_start = 5057 + _SPCOLUMNIDENTIFIER._serialized_end = 5091 + _SPDECIMALTYPE._serialized_start = 5093 + _SPDECIMALTYPE._serialized_end = 5142 + _SPMAPTYPE._serialized_start = 5144 + _SPMAPTYPE._serialized_end = 5243 + _SPSTRINGTYPE._serialized_start = 5245 + _SPSTRINGTYPE._serialized_end = 5304 + _SPSTRUCTFIELD._serialized_start = 5306 + _SPSTRUCTFIELD._serialized_end = 5427 + _SPSTRUCTTYPE._serialized_start = 5429 + _SPSTRUCTTYPE._serialized_end = 5499 + _SPTIMESTAMPTYPE._serialized_start = 5501 + _SPTIMESTAMPTYPE._serialized_end = 5563 + _SPVECTORTYPE._serialized_start = 5565 + _SPVECTORTYPE._serialized_end = 5627 + _SPVARIANT._serialized_start = 5630 + _SPVARIANT._serialized_end = 6336 + _SPVARIANT_OBJECT._serialized_start = 6338 + _SPVARIANT_OBJECT._serialized_end = 6393 + _SPVARIANT_LIST._serialized_start = 6395 + _SPVARIANT_LIST._serialized_end = 6446 + _SPVARIANT_TIMESTAMP._serialized_start = 6448 + _SPVARIANT_TIMESTAMP._serialized_end = 6480 + _SPVARIANT_DATE._serialized_start = 6482 + _SPVARIANT_DATE._serialized_end = 6509 + _SPVARIANT_TIME._serialized_start = 6511 + _SPVARIANT_TIME._serialized_end = 6538 + _SPVARIANT_BYTES._serialized_start = 6540 + _SPVARIANT_BYTES._serialized_end = 6568 + _SPVARIANT_STRING._serialized_start = 6570 + _SPVARIANT_STRING._serialized_end = 6599 + _SPVARIANT_BOOL._serialized_start = 6601 + _SPVARIANT_BOOL._serialized_end = 6628 + _SPVARIANT_BIGINT._serialized_start = 6630 + _SPVARIANT_BIGINT._serialized_end = 6659 + _SPVARIANT_BIGDECIMAL._serialized_start = 6661 + _SPVARIANT_BIGDECIMAL._serialized_end = 6694 + _SPVARIANT_INT._serialized_start = 6696 + _SPVARIANT_INT._serialized_end = 6722 + _SPVARIANT_FLOAT._serialized_start = 6724 + _SPVARIANT_FLOAT._serialized_end = 6752 + _SPVARIANT_DOUBLE._serialized_start = 6754 + _SPVARIANT_DOUBLE._serialized_end = 6783 + _SPROW._serialized_start = 6785 + _SPROW._serialized_end = 6820 + _SRCPOSITION._serialized_start = 6822 + _SRCPOSITION._serialized_end = 6929 + _VARID._serialized_start = 6931 + _VARID._serialized_end = 6957 + _REQUEST._serialized_start = 6959 + _REQUEST._serialized_end = 7071 + _RESPONSE._serialized_start = 7073 + _RESPONSE._serialized_end = 7110 + _CONST._serialized_start = 7113 + _CONST._serialized_end = 7800 + _NONEVAL._serialized_start = 7802 + _NONEVAL._serialized_end = 7842 + _NULLVAL._serialized_start = 7844 + _NULLVAL._serialized_end = 7884 + _BOOLVAL._serialized_start = 7886 + _BOOLVAL._serialized_end = 7937 + _INT32VAL._serialized_start = 7939 + _INT32VAL._serialized_end = 7991 + _INT64VAL._serialized_start = 7993 + _INT64VAL._serialized_end = 8045 + _FLOAT64VAL._serialized_start = 8047 + _FLOAT64VAL._serialized_end = 8101 + _BIGINTVAL._serialized_start = 8103 + _BIGINTVAL._serialized_end = 8156 + _BIGDECIMALVAL._serialized_start = 8158 + _BIGDECIMALVAL._serialized_end = 8243 + _STRINGVAL._serialized_start = 8245 + _STRINGVAL._serialized_end = 8298 + _BINARYVAL._serialized_start = 8300 + _BINARYVAL._serialized_end = 8353 + _TIMESTAMPVAL._serialized_start = 8355 + _TIMESTAMPVAL._serialized_end = 8411 + _DATEVAL._serialized_start = 8413 + _DATEVAL._serialized_end = 8464 + _TIMEVAL._serialized_start = 8466 + _TIMEVAL._serialized_end = 8517 + _PYTHONTIMESTAMPVAL._serialized_start = 8520 + _PYTHONTIMESTAMPVAL._serialized_end = 8713 + _PYTHONDATEVAL._serialized_start = 8715 + _PYTHONDATEVAL._serialized_end = 8803 + _PYTHONTIMEVAL._serialized_start = 8806 + _PYTHONTIMEVAL._serialized_end = 8952 + _FNVAL._serialized_start = 8954 + _FNVAL._serialized_end = 9033 + _IFEXPR._serialized_start = 9035 + _IFEXPR._serialized_end = 9156 + _SOMEVAL._serialized_start = 9158 + _SOMEVAL._serialized_end = 9220 + _TUPLEVAL._serialized_start = 9222 + _TUPLEVAL._serialized_end = 9286 + _LISTVAL._serialized_start = 9288 + _LISTVAL._serialized_end = 9351 + _SEQMAPVAL._serialized_start = 9353 + _SEQMAPVAL._serialized_end = 9423 + _APPLYEXPR._serialized_start = 9426 + _APPLYEXPR._serialized_end = 9668 + _BUILTINFN._serialized_start = 9670 + _BUILTINFN._serialized_end = 9726 + _STOREDPROCEDURE._serialized_start = 9728 + _STOREDPROCEDURE._serialized_end = 9790 + _UDF._serialized_start = 9792 + _UDF._serialized_end = 9842 + _UDTF._serialized_start = 9844 + _UDTF._serialized_end = 9895 + _UNARYOP._serialized_start = 9897 + _UNARYOP._serialized_end = 9967 + _BINOP._serialized_start = 9970 + _BINOP._serialized_end = 10424 + _NOT._serialized_start = 10426 + _NOT._serialized_end = 10490 + _AND._serialized_start = 10492 + _AND._serialized_end = 10576 + _OR._serialized_start = 10578 + _OR._serialized_end = 10661 + _EQ._serialized_start = 10663 + _EQ._serialized_end = 10746 + _NEQ._serialized_start = 10748 + _NEQ._serialized_end = 10832 + _LT._serialized_start = 10834 + _LT._serialized_end = 10917 + _LEQ._serialized_start = 10919 + _LEQ._serialized_end = 11003 + _GT._serialized_start = 11005 + _GT._serialized_end = 11088 + _GEQ._serialized_start = 11090 + _GEQ._serialized_end = 11174 + _NEG._serialized_start = 11176 + _NEG._serialized_end = 11240 + _ADD._serialized_start = 11242 + _ADD._serialized_end = 11326 + _SUB._serialized_start = 11328 + _SUB._serialized_end = 11412 + _MUL._serialized_start = 11414 + _MUL._serialized_end = 11498 + _DIV._serialized_start = 11500 + _DIV._serialized_end = 11584 + _MOD._serialized_start = 11586 + _MOD._serialized_end = 11670 + _POW._serialized_start = 11672 + _POW._serialized_end = 11756 + _BITAND._serialized_start = 11758 + _BITAND._serialized_end = 11845 + _BITOR._serialized_start = 11847 + _BITOR._serialized_end = 11933 + _BITXOR._serialized_start = 11935 + _BITXOR._serialized_end = 12022 + _RANGEVAL._serialized_start = 12024 + _RANGEVAL._serialized_end = 12141 + _EXPR._serialized_start = 12144 + _EXPR._serialized_end = 21445 + _REF._serialized_start = 21447 + _REF._serialized_end = 21511 + _CASTEXPR._serialized_start = 21513 + _CASTEXPR._serialized_end = 21600 + _PDDATAFRAME._serialized_start = 21603 + _PDDATAFRAME._serialized_end = 21752 + _PDDROPNA._serialized_start = 21755 + _PDDROPNA._serialized_end = 21897 + _PDDATAFRAMEGETITEM._serialized_start = 21899 + _PDDATAFRAMEGETITEM._serialized_end = 22000 + _PDDATAFRAMESETITEM._serialized_start = 22002 + _PDDATAFRAMESETITEM._serialized_end = 22125 + _PDDATAFRAMELOC._serialized_start = 22127 + _PDDATAFRAMELOC._serialized_end = 22249 + _PDDATAFRAMEILOC._serialized_start = 22251 + _PDDATAFRAMEILOC._serialized_end = 22374 + _PDREPR._serialized_start = 22376 + _PDREPR._serialized_end = 22490 + _PDREPRRESULT._serialized_start = 22492 + _PDREPRRESULT._serialized_end = 22609 + _RESULT._serialized_start = 22612 + _RESULT._serialized_end = 22770 + _EVALRESULT._serialized_start = 22773 + _EVALRESULT._serialized_end = 23545 + _EVALOK._serialized_start = 23547 + _EVALOK._serialized_end = 23627 + _ERROR._serialized_start = 23629 + _ERROR._serialized_end = 23719 + _SESSIONRESETREQUIREDERROR._serialized_start = 23721 + _SESSIONRESETREQUIREDERROR._serialized_end = 23789 + _SPCOLUMNEXPR._serialized_start = 23792 + _SPCOLUMNEXPR._serialized_end = 24070 + _SPCOLUMNREF._serialized_start = 24072 + _SPCOLUMNREF._serialized_end = 24128 + _SPCOLUMNSQLEXPR._serialized_start = 24130 + _SPCOLUMNSQLEXPR._serialized_end = 24239 + _SPCOLUMNFN._serialized_start = 24242 + _SPCOLUMNFN._serialized_end = 25539 + _SPCOLUMNALIAS._serialized_start = 25542 + _SPCOLUMNALIAS._serialized_end = 25677 + _SPCOLUMNAPPLY_INT._serialized_start = 25679 + _SPCOLUMNAPPLY_INT._serialized_end = 25766 + _SPCOLUMNAPPLY_STRING._serialized_start = 25768 + _SPCOLUMNAPPLY_STRING._serialized_end = 25860 + _SPCOLUMNASC._serialized_start = 25862 + _SPCOLUMNASC._serialized_end = 25979 + _SPCOLUMNBETWEEN._serialized_start = 25982 + _SPCOLUMNBETWEEN._serialized_end = 26118 + _SPCOLUMNCAST._serialized_start = 26120 + _SPCOLUMNCAST._serialized_end = 26218 + _SPCOLUMNTRYCAST._serialized_start = 26220 + _SPCOLUMNTRYCAST._serialized_end = 26321 + _SPCOLUMNDESC._serialized_start = 26323 + _SPCOLUMNDESC._serialized_end = 26441 + _SPCOLUMNEQUALNAN._serialized_start = 26443 + _SPCOLUMNEQUALNAN._serialized_end = 26516 + _SPCOLUMNEQUALNULL._serialized_start = 26518 + _SPCOLUMNEQUALNULL._serialized_end = 26616 + _SPCOLUMNIN_DATAFRAME._serialized_start = 26618 + _SPCOLUMNIN_DATAFRAME._serialized_end = 26729 + _SPCOLUMNIN_SEQ._serialized_start = 26731 + _SPCOLUMNIN_SEQ._serialized_end = 26829 + _SPCOLUMNISNOTNULL._serialized_start = 26831 + _SPCOLUMNISNOTNULL._serialized_end = 26905 + _SPCOLUMNISNULL._serialized_start = 26907 + _SPCOLUMNISNULL._serialized_end = 26978 + _SPCOLUMNNAME._serialized_start = 26980 + _SPCOLUMNNAME._serialized_end = 27064 + _SPCOLUMNOVER._serialized_start = 27066 + _SPCOLUMNOVER._serialized_end = 27179 + _SPCOLUMNWITHINGROUP._serialized_start = 27181 + _SPCOLUMNWITHINGROUP._serialized_end = 27300 + _SPCOLUMNSTRINGLIKE._serialized_start = 27302 + _SPCOLUMNSTRINGLIKE._serialized_end = 27405 + _SPCOLUMNSTRINGREGEXP._serialized_start = 27407 + _SPCOLUMNSTRINGREGEXP._serialized_end = 27512 + _SPCOLUMNSTRINGSTARTSWITH._serialized_start = 27514 + _SPCOLUMNSTRINGSTARTSWITH._serialized_end = 27622 + _SPCOLUMNSTRINGENDSWITH._serialized_start = 27624 + _SPCOLUMNSTRINGENDSWITH._serialized_end = 27730 + _SPCOLUMNSTRINGSUBSTR._serialized_start = 27732 + _SPCOLUMNSTRINGSUBSTR._serialized_end = 27857 + _SPCOLUMNSTRINGCOLLATE._serialized_start = 27859 + _SPCOLUMNSTRINGCOLLATE._serialized_end = 27972 + _SPCOLUMNSTRINGCONTAINS._serialized_start = 27974 + _SPCOLUMNSTRINGCONTAINS._serialized_end = 28081 + _SPDATAFRAMEEXPR._serialized_start = 28084 + _SPDATAFRAMEEXPR._serialized_end = 31570 + _SPDATAFRAMEREF._serialized_start = 31572 + _SPDATAFRAMEREF._serialized_end = 31643 + _SPDATAFRAMESHOW._serialized_start = 31645 + _SPDATAFRAMESHOW._serialized_end = 31717 + _SPCREATEDATAFRAME._serialized_start = 31720 + _SPCREATEDATAFRAME._serialized_end = 31849 + _SPFLATTEN._serialized_start = 31852 + _SPFLATTEN._serialized_end = 32032 + _SPGENERATOR._serialized_start = 32034 + _SPGENERATOR._serialized_end = 32151 + _SPRANGE._serialized_start = 32154 + _SPRANGE._serialized_end = 32294 + _SPSQL._serialized_start = 32296 + _SPSQL._serialized_end = 32376 + _SPSTOREDPROCEDURE._serialized_start = 32378 + _SPSTOREDPROCEDURE._serialized_end = 32493 + _SPTABLE._serialized_start = 32495 + _SPTABLE._serialized_end = 32605 + _SPTABLEFUNCTION._serialized_start = 32607 + _SPTABLEFUNCTION._serialized_end = 32731 + _SPDATAFRAMETODF._serialized_start = 32733 + _SPDATAFRAMETODF._serialized_end = 32852 + _SPDATAFRAMENADROP_SCALA._serialized_start = 32855 + _SPDATAFRAMENADROP_SCALA._serialized_end = 32990 + _SPDATAFRAMENADROP_PYTHON._serialized_start = 32993 + _SPDATAFRAMENADROP_PYTHON._serialized_end = 33176 + _SPDATAFRAMENAFILL._serialized_start = 33179 + _SPDATAFRAMENAFILL._serialized_end = 33364 + _SPDATAFRAMENAREPLACE._serialized_start = 33367 + _SPDATAFRAMENAREPLACE._serialized_end = 33669 + _SPDATAFRAMEAGG._serialized_start = 33672 + _SPDATAFRAMEAGG._serialized_end = 33805 + _SPDATAFRAMEAPPLY._serialized_start = 33807 + _SPDATAFRAMEAPPLY._serialized_end = 33908 + _SPDATAFRAMECOL._serialized_start = 33910 + _SPDATAFRAMECOL._serialized_end = 34009 + _SPDATAFRAMECROSSJOIN._serialized_start = 34011 + _SPDATAFRAMECROSSJOIN._serialized_end = 34134 + _SPDATAFRAMECUBE._serialized_start = 34137 + _SPDATAFRAMECUBE._serialized_end = 34270 + _SPDATAFRAMEDISTINCT._serialized_start = 34272 + _SPDATAFRAMEDISTINCT._serialized_end = 34358 + _SPDATAFRAMEDROP_COLUMNS._serialized_start = 34361 + _SPDATAFRAMEDROP_COLUMNS._serialized_end = 34502 + _SPDATAFRAMEDROP_STRINGS._serialized_start = 34504 + _SPDATAFRAMEDROP_STRINGS._serialized_end = 34626 + _SPDATAFRAMEDROPDUPLICATES._serialized_start = 34628 + _SPDATAFRAMEDROPDUPLICATES._serialized_end = 34734 + _SPDATAFRAMEEXCEPT._serialized_start = 34736 + _SPDATAFRAMEEXCEPT._serialized_end = 34857 + _SPDATAFRAMEFILTER._serialized_start = 34859 + _SPDATAFRAMEFILTER._serialized_end = 34981 + _SPDATAFRAMEFLATTEN._serialized_start = 34984 + _SPDATAFRAMEFLATTEN._serialized_end = 35207 + _SPDATAFRAMEFIRST._serialized_start = 35210 + _SPDATAFRAMEFIRST._serialized_end = 35373 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 35376 + _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 35520 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 35522 + _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 35647 + _SPDATAFRAMEGROUPBY._serialized_start = 35649 + _SPDATAFRAMEGROUPBY._serialized_end = 35734 + _SPDATAFRAMEINTERSECT._serialized_start = 35736 + _SPDATAFRAMEINTERSECT._serialized_end = 35860 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 35863 + _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 36133 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 36136 + _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 36412 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 36415 + _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 36631 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 36634 + _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 36870 + _SPDATAFRAMELIMIT._serialized_start = 36872 + _SPDATAFRAMELIMIT._serialized_end = 36966 + _SPDATAFRAMENATURALJOIN._serialized_start = 36969 + _SPDATAFRAMENATURALJOIN._serialized_end = 37130 + _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 37133 + _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 37296 + _SPDATAFRAMEPIVOT_STRING._serialized_start = 37299 + _SPDATAFRAMEPIVOT_STRING._serialized_end = 37443 + _SPDATAFRAMERANDOMSPLIT._serialized_start = 37446 + _SPDATAFRAMERANDOMSPLIT._serialized_end = 37647 + _SPDATAFRAMERENAME._serialized_start = 37650 + _SPDATAFRAMERENAME._serialized_end = 37784 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 37787 + _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 37930 + _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 37932 + _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 38056 + _SPDATAFRAMESAMPLE._serialized_start = 38059 + _SPDATAFRAMESAMPLE._serialized_end = 38245 + _SPDATAFRAMESELECT_COLUMNS._serialized_start = 38248 + _SPDATAFRAMESELECT_COLUMNS._serialized_end = 38383 + _SPDATAFRAMESELECT_STRINGS._serialized_start = 38385 + _SPDATAFRAMESELECT_STRINGS._serialized_end = 38509 + _SPDATAFRAMESORT._serialized_start = 38512 + _SPDATAFRAMESORT._serialized_end = 38645 + _SPDATAFRAMEUNION._serialized_start = 38647 + _SPDATAFRAMEUNION._serialized_end = 38766 + _SPDATAFRAMEUNIONALL._serialized_start = 38768 + _SPDATAFRAMEUNIONALL._serialized_end = 38890 + _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 38893 + _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 39021 + _SPDATAFRAMEUNIONBYNAME._serialized_start = 39023 + _SPDATAFRAMEUNIONBYNAME._serialized_end = 39148 + _SPDATAFRAMEWHERE._serialized_start = 39150 + _SPDATAFRAMEWHERE._serialized_end = 39271 + _SPDATAFRAMEWITHCOLUMN._serialized_start = 39274 + _SPDATAFRAMEWITHCOLUMN._serialized_end = 39412 + _SPDATAFRAMEWITHCOLUMNS._serialized_start = 39415 + _SPDATAFRAMEWITHCOLUMNS._serialized_end = 39558 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 39561 + _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 39720 + _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 39723 + _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 40239 + _SPDATAFRAMEREADEROPTIONS._serialized_start = 40241 + _SPDATAFRAMEREADEROPTIONS._serialized_end = 40295 + _SPDATAFRAMEREADERSCHEMA._serialized_start = 40297 + _SPDATAFRAMEREADERSCHEMA._serialized_end = 40350 + _SPREADAVRO._serialized_start = 40352 + _SPREADAVRO._serialized_end = 40409 + _SPREADCSV._serialized_start = 40411 + _SPREADCSV._serialized_end = 40467 + _SPREADJSON._serialized_start = 40469 + _SPREADJSON._serialized_end = 40526 + _SPREADORC._serialized_start = 40528 + _SPREADORC._serialized_end = 40584 + _SPREADPARQUET._serialized_start = 40586 + _SPREADPARQUET._serialized_end = 40646 + _SPREADTABLE._serialized_start = 40648 + _SPREADTABLE._serialized_end = 40706 + _SPREADXML._serialized_start = 40708 + _SPREADXML._serialized_end = 40764 + _SPCOPYINTO._serialized_start = 40767 + _SPCOPYINTO._serialized_end = 40970 + _SPDATAFRAMEWRITER._serialized_start = 40973 + _SPDATAFRAMEWRITER._serialized_end = 41336 + _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 41338 + _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 41393 + _SPDATAFRAMEWRITEROPTIONS._serialized_start = 41395 + _SPDATAFRAMEWRITEROPTIONS._serialized_end = 41449 + _SPWRITECSV._serialized_start = 41451 + _SPWRITECSV._serialized_end = 41542 + _SPWRITEJSON._serialized_start = 41544 + _SPWRITEJSON._serialized_end = 41636 + _SPWRITEPARQUET._serialized_start = 41638 + _SPWRITEPARQUET._serialized_end = 41733 + _SPWRITETABLE._serialized_start = 41736 + _SPWRITETABLE._serialized_end = 41885 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_start = 41887 + _SPDATAFRAMESTATSAPPROXQUANTILE._serialized_end = 41953 + _SPDATAFRAMESTATSCORR._serialized_start = 41955 + _SPDATAFRAMESTATSCORR._serialized_end = 42011 + _SPDATAFRAMESTATSCOV._serialized_start = 42013 + _SPDATAFRAMESTATSCOV._serialized_end = 42068 + _SPDATAFRAMESTATSCROSSTAB._serialized_start = 42070 + _SPDATAFRAMESTATSCROSSTAB._serialized_end = 42189 + _SPDATAFRAMESTATSSAMPLEBY._serialized_start = 42192 + _SPDATAFRAMESTATSSAMPLEBY._serialized_end = 42373 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 42376 + _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 43985 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 43988 + _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 44181 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 44184 + _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 44359 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 44362 + _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 44515 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 44518 + _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 44666 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 44669 + _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 44839 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 44841 + _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 44958 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 44961 + _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 45109 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 45112 + _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 45261 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 45264 + _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 45415 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 45418 + _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 45566 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 45569 + _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 45717 + _SPDATAFRAMETYPE._serialized_start = 45719 + _SPDATAFRAMETYPE._serialized_end = 45777 + _SPGROUPEDDATAFRAMETYPE._serialized_start = 45779 + _SPGROUPEDDATAFRAMETYPE._serialized_end = 45849 + _SPWINDOWTYPE._serialized_start = 45851 + _SPWINDOWTYPE._serialized_end = 45865 + _SPCOLEXPRTYPE._serialized_start = 45867 + _SPCOLEXPRTYPE._serialized_end = 45906 + _HASSRCPOSITION._serialized_start = 45909 + _HASSRCPOSITION._serialized_end = 55254 + _STMT._serialized_start = 55256 + _STMT._serialized_end = 55331 + _ASSIGN._serialized_start = 55333 + _ASSIGN._serialized_end = 55453 + _EVAL._serialized_start = 55455 + _EVAL._serialized_end = 55502 + _TYPE._serialized_start = 55505 + _TYPE._serialized_end = 56465 + _UNKNOWNTYPE._serialized_start = 56467 + _UNKNOWNTYPE._serialized_end = 56480 + _ANYTYPE._serialized_start = 56482 + _ANYTYPE._serialized_end = 56491 + _SCALARTYPE._serialized_start = 56494 + _SCALARTYPE._serialized_end = 56795 + _NUMERICTYPE._serialized_start = 56798 + _NUMERICTYPE._serialized_end = 56980 + _NUMBERTYPE._serialized_start = 56982 + _NUMBERTYPE._serialized_end = 56994 + _NOTHINGTYPE._serialized_start = 56996 + _NOTHINGTYPE._serialized_end = 57009 + _UNITTYPE._serialized_start = 57011 + _UNITTYPE._serialized_end = 57021 + _BOOLTYPE._serialized_start = 57023 + _BOOLTYPE._serialized_end = 57033 + _INT32TYPE._serialized_start = 57035 + _INT32TYPE._serialized_end = 57046 + _INT64TYPE._serialized_start = 57048 + _INT64TYPE._serialized_end = 57059 + _FLOAT64TYPE._serialized_start = 57061 + _FLOAT64TYPE._serialized_end = 57074 + _STRINGTYPE._serialized_start = 57076 + _STRINGTYPE._serialized_end = 57088 + _PDREPRTYPE._serialized_start = 57090 + _PDREPRTYPE._serialized_end = 57102 + _FNTYPE._serialized_start = 57104 + _FNTYPE._serialized_end = 57163 + _OPTIONTYPE._serialized_start = 57165 + _OPTIONTYPE._serialized_end = 57201 + _TUPLETYPE._serialized_start = 57203 + _TUPLETYPE._serialized_end = 57238 + _LISTTYPE._serialized_start = 57240 + _LISTTYPE._serialized_end = 57274 + _MAPTYPE._serialized_start = 57276 + _MAPTYPE._serialized_end = 57329 + _TYVAR._serialized_start = 57331 + _TYVAR._serialized_end = 57350 # @@protoc_insertion_point(module_scope) diff --git a/src/snowflake/snowpark/dataframe.py b/src/snowflake/snowpark/dataframe.py index 6c4f0dc69a9..8c5afd40490 100644 --- a/src/snowflake/snowpark/dataframe.py +++ b/src/snowflake/snowpark/dataframe.py @@ -3806,12 +3806,11 @@ def sample( # AST. stmt = self._session._ast_batch.assign() - if frac is not None: - ast = stmt.expr.sp_dataframe_sample__double - ast.probability_fraction = frac - else: - ast = stmt.expr.sp_dataframe_sample__long - ast.num = n + ast = stmt.expr.sp_dataframe_sample + if frac: + ast.probability_fraction.value = frac + if n: + ast.num.value = n self.set_ast_ref(ast.df) set_src_position(ast.src) diff --git a/src/snowflake/snowpark/dataframe_na_functions.py b/src/snowflake/snowpark/dataframe_na_functions.py index 772489f0a4d..cf8ab3850cf 100644 --- a/src/snowflake/snowpark/dataframe_na_functions.py +++ b/src/snowflake/snowpark/dataframe_na_functions.py @@ -10,7 +10,10 @@ from typing import Dict, Optional, Union import snowflake.snowpark -from snowflake.snowpark._internal.ast_utils import build_const_from_python_val, with_src_position +from snowflake.snowpark._internal.ast_utils import ( + build_const_from_python_val, + with_src_position, +) from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages from snowflake.snowpark._internal.telemetry import add_api_call, adjust_api_subcalls from snowflake.snowpark._internal.type_utils import ( @@ -180,7 +183,7 @@ def drop( subset = [subset] elif not isinstance(subset, (list, tuple)): raise TypeError("subset should be a list or tuple of column names") - + # if thresh is not provided, # drop a row if it contains any nulls when how == 'any', # otherwise drop a row only if all its values are null. diff --git a/src/snowflake/snowpark/session.py b/src/snowflake/snowpark/session.py index e34933d96aa..3cd73d7396e 100644 --- a/src/snowflake/snowpark/session.py +++ b/src/snowflake/snowpark/session.py @@ -24,10 +24,10 @@ import cloudpickle import pkg_resources +import snowflake.snowpark._internal.proto.ast_pb2 as proto from snowflake.connector import ProgrammingError, SnowflakeConnection from snowflake.connector.options import installed_pandas, pandas from snowflake.connector.pandas_tools import write_pandas -import snowflake.snowpark._internal.proto.ast_pb2 as proto from snowflake.snowpark._internal.analyzer import analyzer_utils from snowflake.snowpark._internal.analyzer.analyzer import Analyzer from snowflake.snowpark._internal.analyzer.analyzer_utils import result_scan_statement @@ -1930,8 +1930,8 @@ def table_function( expr = with_src_position(stmt.expr.apply_expr) if isinstance(func_name, TableFunctionCall): expr.fn.udtf.name = func_name.name - func_arguments = func.arguments - func_named_arguments = func.named_arguments + func_arguments = func_name.arguments + func_named_arguments = func_name.named_arguments # TODO: func.{_over, _partition_by, _order_by, _aliases, _api_call_source} elif isinstance(func_name, str): expr.fn.udtf.name = func_name @@ -3291,7 +3291,8 @@ def flatten( return None else: self._conn.log_not_supported_error( - external_feature_name="Session.flatten", raise_error=NotImplementedError + external_feature_name="Session.flatten", + raise_error=NotImplementedError, ) if isinstance(input, str): input = col(input) diff --git a/tests/ast/data/df_sample.test b/tests/ast/data/df_sample.test index c7b68aaff79..4f1e4611fc4 100644 --- a/tests/ast/data/df_sample.test +++ b/tests/ast/data/df_sample.test @@ -10,6 +10,6 @@ df = df.sample(frac=0.5) res1 = session.table("test_table") -res2 = res1.sample(3) +res2 = res1.sample(None, 3) -res3 = res2.sample(0.5) +res3 = res2.sample(0.5, None) From d99556855aa0c30a959a387013df8074f11f2c0d Mon Sep 17 00:00:00 2001 From: Varnika Budati Date: Tue, 16 Jul 2024 10:07:28 -0700 Subject: [PATCH 10/10] got all tests to work --- src/snowflake/snowpark/_internal/proto/ast_pb2.py | 4 ++-- src/snowflake/snowpark/dataframe.py | 4 +++- tests/ast/data/df_random_split.test | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index f6a3017c96e..8b8154f3252 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -20,11 +20,11 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.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"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"\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"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"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"\xf2\x01\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12*\n\nnamed_args\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x30\n\x10statement_params\x18\x05 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x34\n\x10log_on_exception\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"8\n\tBuiltinFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t">\n\x0fStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"2\n\x03Udf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"3\n\x04Udtf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xaeH\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\x31\n\x14trait_sp_column_expr\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x04 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x05 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x07 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x08 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\t \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\n \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0b \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0c \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12&\n\x0etrait_unary_op\x18\r \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0e \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x0f \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x10 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x11 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x12 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x13 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x14 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x15 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x16 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x17 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x18 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x19 \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1a \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1b \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1c \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1d \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1e \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18\x1f \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. \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18/ \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x30 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x31 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x32 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x33 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x34 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x35 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x36 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x37 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x38 \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x39 \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\x08some_val\x18= \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18> \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18? \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18@ \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x41 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x42 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x43 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x44 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x45 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18\x46 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18G \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18H \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18I \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18J \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18K \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18L \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18M \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18N \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18O \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18P \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18Q \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18R \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18S \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18T \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18U \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18V \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18W \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18X \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18Y \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Z \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18[ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\\ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18] \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18^ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18_ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18` \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x62 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x64 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x65 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18g \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18h \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18j \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18k \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18l \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18m \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18n \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18o \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18p \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18q \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18r \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18s \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18t \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18u \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18v \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12/\n\x10sp_dataframe_ref\x18w \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18x \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18y \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18{ \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18| \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18} \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x31\n\x11sp_dataframe_show\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x81\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x83\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x85\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x86\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x87\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x88\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x89\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8a\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12%\n\nsp_flatten\x18\x8b\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\x8c\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8d\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8e\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x8f\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x92\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x93\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x94\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x95\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x96\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x97\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x98\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x99\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9a\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9b\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9c\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9d\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9e\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa0\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa1\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa2\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa3\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa4\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa5\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa6\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa7\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xa8\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xa9\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xaa\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xab\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xac\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xad\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xae\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x12\x1a\n\x04udtf\x18\xaf\x01 \x01(\x0b\x32\t.ast.UdtfH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\x96\x02\n\x0cSpColumnExpr\x12\x36\n\x14sp_column_equal_null\x18\x01 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x02 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x03 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x04 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x05 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"g\n\x12SpColumnStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"i\n\x14SpColumnStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"l\n\x18SpColumnStringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"j\n\x16SpColumnStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"q\n\x15SpColumnStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x03 \x01(\x0b\x32\t.ast.Expr"k\n\x16SpColumnStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\xf8\x1a\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x0f \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12;\n\x16sp_dataframe_intersect\x18\x10 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x11 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x12 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x13 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x14 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x15 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x16 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x17 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x18 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x19 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1a \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12/\n\x10sp_dataframe_ref\x18\x1b \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1c \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18\x1d \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18\x1e \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18\x1f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18# \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18$ \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18% \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18& \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18\' \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18( \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18) \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18* \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18+ \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18, \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\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\x30 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x31 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x32 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x33 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x34 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x35 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x36 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18\x37 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18\x38 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18\x39 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18: \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xb4\x01\n\tSpFlatten\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05input\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x04path\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t\x12\x19\n\x06params\x18\x03 \x03(\x0b\x32\t.ast.Expr"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"n\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x04name\x18\x02 \x01(\x0b\x32\x10.ast.SpTableName\x12$\n\x07variant\x18\x03 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x03 \x01(\t\x12+\n\x06thresh\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String"\xb9\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x04 \x01(\x0b\x32\x14.ast.Map_String_Expr\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String"\xae\x02\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x03 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\'\n\x0fto_replace_list\x18\x04 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x06 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12 \n\x06subset\x18\x08 \x01(\x0b\x32\x10.ast.List_String"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xdf\x01\n\x12SpDataframeFlatten\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05input\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12*\n\x04path\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x18SpDataframeSample_Double\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1c\n\x14probability_fraction\x18\x03 \x01(\x04"f\n\x16SpDataframeSample_Long\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xdaH\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\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\x0etrait_unary_op\x18\x0e \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0f \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x10 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x11 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x12 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x13 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x14 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x15 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x16 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x17 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x18 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x19 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x38 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x39 \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\x08some_val\x18> \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18? \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18@ \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x41 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x42 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x43 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x44 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x45 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x46 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18G \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18H \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18I \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18J \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18K \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18L \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18M \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18N \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18O \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18P \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18Q \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18R \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18S \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18T \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18U \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18V \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18W \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18X \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18Y \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18Z \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_apply\x18\\ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18] \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18^ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18_ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18` \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x61 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x62 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x63 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x64 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x65 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18g \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18h \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18j \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18k \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18l \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18m \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18n \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18o \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18p \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18q \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18r \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18s \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18t \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18u \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18v \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18w \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12/\n\x10sp_dataframe_ref\x18x \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18y \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18z \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x44\n\x1bsp_dataframe_sample__double\x18| \x01(\x0b\x32\x1d.ast.SpDataframeSample_DoubleH\x00\x12@\n\x19sp_dataframe_sample__long\x18} \x01(\x0b\x32\x1b.ast.SpDataframeSample_LongH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18~ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x83\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x85\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x86\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x87\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12%\n\nsp_flatten\x18\x8c\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\x8d\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8e\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x91\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x92\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x93\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x94\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x96\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x97\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x98\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x99\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9a\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9b\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9c\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9d\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9e\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa5\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa6\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa7\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa8\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xa9\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xaa\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xab\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xac\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xad\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xae\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xaf\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x12\x1a\n\x04udtf\x18\xb0\x01 \x01(\x0b\x32\t.ast.UdtfH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' + b'\n\x18Snowpark/proto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.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"a\n Tuple_SpVariant_SpVariant_Double\x12\x1a\n\x02_1\x18\x01 \x01(\x0b\x32\x0e.ast.SpVariant\x12!\n\x02_2\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_Double"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"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\x0fpython_language\x18\x01 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x02 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x12*\n\rjava_language\x18\x03 \x01(\x0b\x32\x11.ast.JavaLanguageH\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\x05major\x18\x01 \x01(\x03\x12\r\n\x05minor\x18\x02 \x01(\x03\x12\r\n\x05patch\x18\x03 \x01(\x03\x12\r\n\x05label\x18\x04 \x01(\t"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"q\n\x0bPdIndexExpr\x12\x17\n\x03ord\x18\x01 \x01(\x0b\x32\x08.ast.OrdH\x00\x12 \n\x08\x66lex_ord\x18\x02 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x03 \x01(\x0b\x32\x08.ast.KeyH\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\tord_range\x18\x01 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x12+\n\x0e\x66lex_ord_range\x18\x02 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12"\n\tkey_range\x18\x03 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x04 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12)\n\rflex_ord_list\x18\x05 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12 \n\x08key_list\x18\x06 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12/\n\x10\x62ool_filter_list\x18\x07 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\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 \n\x16sp_flatten_mode_object\x18\x01 \x01(\x08H\x00\x12\x1f\n\x15sp_flatten_mode_array\x18\x02 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"\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"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"6\n\x0eSpGroupingSets\x12$\n\x04sets\x18\x01 \x03(\x0b\x32\x16.ast.List_SpColumnExpr"\x9f\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\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__inner\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x02 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x03 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x04 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x07 \x01(\x08H\x00\x12\x1c\n\x12sp_join_type__self\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xcd\x03\n\x10SpWindowSpecExpr\x12\x1e\n\x14sp_window_spec_empty\x18\x01 \x01(\x08H\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\x12$\n\x1asp_window_spec_current_row\x18\x06 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_following\x18\x07 \x01(\x08H\x00\x12,\n"sp_window_spec_unbounded_preceding\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"Z\n\x13SpWindowSpecOrderBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"^\n\x17SpWindowSpecPartitionBy\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\x1f\n\x04\x63ols\x18\x02 \x03(\x0b\x32\x11.ast.SpColumnExpr"Z\n\x18SpWindowSpecRangeBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"Y\n\x17SpWindowSpecRowsBetween\x12"\n\x03wnd\x18\x01 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr\x12\r\n\x05start\x18\x02 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08""\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!\n\x08value_ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x03 \x01(\x08";\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\x1b\n\x02ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x11\n\tdimension\x18\x02 \x01(\x03"\xc2\x05\n\tSpVariant\x12\x33\n\x12sp_variant__object\x18\x01 \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12/\n\x10sp_variant__list\x18\x02 \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x39\n\x15sp_variant__timestamp\x18\x03 \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x12/\n\x10sp_variant__date\x18\x04 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12/\n\x10sp_variant__time\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x31\n\x11sp_variant__bytes\x18\x06 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12\x33\n\x12sp_variant__string\x18\x07 \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__bool\x18\x08 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x34\n\x13sp_variant__big_int\x18\t \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12<\n\x17sp_variant__big_decimal\x18\n \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12-\n\x0fsp_variant__int\x18\x0b \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12\x31\n\x11sp_variant__float\x18\x0c \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12\x33\n\x12sp_variant__double\x18\r \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\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"#\n\x05SpRow\x12\x1a\n\x02vs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant"k\n\x0bSrcPosition\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x12\n\nstart_line\x18\x02 \x01(\x03\x12\x14\n\x0cstart_column\x18\x03 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x04 \x01(\x03\x12\x12\n\nend_column\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"p\n\x07Request\x12$\n\x0e\x63lient_version\x18\x01 \x01(\x0b\x32\x0c.ast.Version\x12&\n\x0f\x63lient_language\x18\x02 \x01(\x0b\x32\r.ast.Language\x12\x17\n\x04\x62ody\x18\x03 \x03(\x0b\x32\t.ast.Stmt"%\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x02 \x01(\x0c\x12\r\n\x05scale\x18\x03 \x01(\x03"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03\x12\x0c\n\x04hour\x18\x05 \x01(\x03\x12\x0e\n\x06minute\x18\x06 \x01(\x03\x12\x0e\n\x06second\x18\x07 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x08 \x01(\x03\x12\x1f\n\x02tz\x18\t \x01(\x0b\x32\x13.ast.PythonTimeZone"X\n\rPythonDateVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x02 \x01(\x03\x12\r\n\x05month\x18\x03 \x01(\x03\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x05 \x01(\x03\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x17\n\x04\x62ody\x18\x03 \x01(\x0b\x32\t.ast.Expr"y\n\x06IfExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x63ond\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x04 \x01(\x0b\x32\t.ast.Expr">\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x03kvs\x18\x02 \x03(\x0b\x32\r.ast.TupleVal"\xf2\x01\n\tApplyExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02\x66n\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12*\n\nnamed_args\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x30\n\x10statement_params\x18\x05 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x34\n\x10log_on_exception\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"8\n\tBuiltinFn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t">\n\x0fStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"2\n\x03Udf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"3\n\x04Udtf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41nd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Or\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02\x45q\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Neq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Lt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Leq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"S\n\x02Gt\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Geq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"@\n\x03Neg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x07operand\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x41\x64\x64\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Sub\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mul\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03\x44iv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Mod\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"T\n\x03Pow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itAnd\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"V\n\x05\x42itOr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"W\n\x06\x42itXor\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"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\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xd5H\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\x31\n\x14trait_sp_column_expr\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x04 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x05 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x07 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x08 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\t \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\n \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0b \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0c \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12&\n\x0etrait_unary_op\x18\r \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0e \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x0f \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x10 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x11 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x12 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x13 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x14 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x15 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x16 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x17 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x18 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x19 \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1a \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1b \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1c \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1d \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1e \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18\x1f \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. \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18/ \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x30 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x31 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x32 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x33 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x34 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x35 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x36 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x37 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x38 \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x39 \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\x08some_val\x18= \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18> \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18? \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18@ \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x41 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x42 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x43 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x44 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x45 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18\x46 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18G \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18H \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18I \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18J \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18K \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18L \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18M \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18N \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18O \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18P \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18Q \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18R \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18S \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18T \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18U \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18V \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18W \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18X \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18Y \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18Z \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18[ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\\ \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18] \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18^ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18_ \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18` \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x61 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x62 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x63 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x64 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x65 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x66 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18g \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18h \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18i \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18j \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18k \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18l \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18m \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18n \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18o \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18p \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18q \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18r \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18s \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18t \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18u \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18v \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18w \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18x \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18y \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18z \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18{ \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18| \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\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\x46\n\x1csp_dataframe_select__strings\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x80\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x83\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x84\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x85\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x86\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x87\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x88\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x89\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8b\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12%\n\nsp_flatten\x18\x8c\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\x8d\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8e\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x8f\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x90\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x91\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x92\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x93\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x94\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x95\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x96\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x97\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x98\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x99\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9a\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9b\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9c\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9d\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9e\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\x9f\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa5\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa6\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa7\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa8\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xa9\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xaa\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xab\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xac\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xad\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xae\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xaf\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x12\x1a\n\x04udtf\x18\xb0\x01 \x01(\x0b\x32\t.ast.UdtfH\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05index\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x05 \x01(\x0b\x32\t.ast.Type"\x8e\x01\n\x08PdDropNa\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x19\n\x06thresh\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x61xis\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06subset\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr"{\n\x12PdDataframeSetItem\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"{\n\x0fPdDataframeILoc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1a\n\x07\x63olumns\x18\x04 \x01(\x0b\x32\t.ast.Expr"r\n\x06PdRepr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05\x61sync\x18\x02 \x01(\x08\x12\x13\n\x01v\x18\x03 \x01(\x0b\x32\x08.ast.Ref\x12\x10\n\x08max_rows\x18\x04 \x01(\x03\x12\x13\n\x0bmax_columns\x18\x05 \x01(\x03"u\n\x0cPdReprResult\x12\x10\n\x08num_rows\x18\x01 \x01(\x03\x12\x13\n\x0bnum_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x18\n\x10num_head_columns\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x0f.ast.EvalResult"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"\x96\x02\n\x0cSpColumnExpr\x12\x36\n\x14sp_column_equal_null\x18\x01 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x02 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x03 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x04 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x05 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02id\x18\x02 \x01(\t"m\n\x0fSpColumnSqlExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12.\n\x08\x64\x66_alias\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x03 \x01(\x03"\\\n\x14SpColumnApply_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x03 \x01(\t"u\n\x0bSpColumnAsc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"\x88\x01\n\x0fSpColumnBetween\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"I\n\x10SpColumnEqualNan\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"b\n\x11SpColumnEqualNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03lhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x03 \x01(\x0b\x32\t.ast.Expr"o\n\x14SpColumnIn_Dataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"b\n\x0eSpColumnIn_Seq\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"G\n\x0eSpColumnIsNull\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr"T\n\x0cSpColumnName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x61lias\x18\x03 \x01(\t"q\n\x0cSpColumnOver\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"w\n\x13SpColumnWithinGroup\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"g\n\x12SpColumnStringLike\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"i\n\x14SpColumnStringRegexp\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"l\n\x18SpColumnStringStartsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x03 \x01(\x0b\x32\t.ast.Expr"j\n\x16SpColumnStringEndsWith\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x04 \x01(\x0b\x32\t.ast.Expr"q\n\x15SpColumnStringCollate\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x03 \x01(\x0b\x32\t.ast.Expr"k\n\x16SpColumnStringContains\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x9e\x1b\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<\n\x17sp_dataframe_cross_join\x18\x07 \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\t \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x0b \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x0c \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\r \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x0e \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x0f \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x10 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12;\n\x16sp_dataframe_intersect\x18\x11 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x12 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x13 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x14 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x15 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x17 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x18 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x19 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1a \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1b \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18\x1c \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18\x1d \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18\x1e \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x35\n\x13sp_dataframe_sample\x18\x1f \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x46\n\x1csp_dataframe_select__strings\x18! \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\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\x12\x45\n\x1csp_dataframe_stats_cross_tab\x18$ \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x45\n\x1csp_dataframe_stats_sample_by\x18% \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18& \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18\' \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18( \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18) \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18* \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18+ \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18, \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12@\n\x19sp_dataframe_with_columns\x18- \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\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\x30 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18\x31 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x32 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x33 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x34 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x35 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x36 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x37 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x1c\n\x06sp_sql\x18\x38 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18\x39 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18: \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18; \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"H\n\x0fSpDataframeShow\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\x81\x01\n\x11SpCreateDataframe\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\n.ast.SpRow\x12!\n\x06schema\x18\x03 \x01(\x0b\x32\x11.ast.SpStructType\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xb4\x01\n\tSpFlatten\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05input\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12*\n\x04path\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\r\n\x05outer\x18\x04 \x01(\x08\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12 \n\x04mode\x18\x06 \x01(\x0b\x32\x12.ast.SpFlattenMode"u\n\x0bSpGenerator\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12"\n\x07\x63olumns\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x8c\x01\n\x07SpRange\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x05start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0b\n\x03\x65nd\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05query\x18\x02 \x01(\t\x12\x19\n\x06params\x18\x03 \x03(\x0b\x32\t.ast.Expr"s\n\x11SpStoredProcedure\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1c\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x10\n\x08variadic\x18\x04 \x01(\x08"n\n\x07SpTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x04name\x18\x02 \x01(\x0b\x32\x10.ast.SpTableName\x12$\n\x07variant\x18\x03 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12,\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x0c\n\x04\x63ols\x18\x04 \x03(\t"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x03 \x01(\t\x12+\n\x06thresh\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String"\xb9\x01\n\x11SpDataframeNaFill\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x04 \x01(\x0b\x32\x14.ast.Map_String_Expr\x12 \n\x06subset\x18\x05 \x01(\x0b\x32\x10.ast.List_String"\xae\x02\n\x14SpDataframeNaReplace\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x03 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\'\n\x0fto_replace_list\x18\x04 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x06 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12 \n\x06subset\x18\x08 \x01(\x0b\x32\x10.ast.List_String"\x85\x01\n\x0eSpDataframeAgg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"e\n\x10SpDataframeApply\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"c\n\x0eSpDataframeCol\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t"{\n\x14SpDataframeCrossJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x85\x01\n\x0fSpDataframeCube\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"V\n\x13SpDataframeDistinct\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8d\x01\n\x17SpDataframeDrop_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"z\n\x17SpDataframeDrop_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"j\n\x19SpDataframeDropDuplicates\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t"y\n\x11SpDataframeExcept\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x11SpDataframeFilter\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\xdf\x01\n\x12SpDataframeFlatten\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05input\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12*\n\x04path\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12 \n\x04mode\x18\x07 \x01(\x0b\x32\x12.ast.SpFlattenMode"\xa3\x01\n\x10SpDataframeFirst\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\r\n\x05\x62lock\x18\x04 \x01(\x08\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"U\n\x12SpDataframeGroupBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr"|\n\x14SpDataframeIntersect\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x04\x61rgs\x18\x04 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\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\x1f\n\x04\x61rgs\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12(\n\x08order_by\x18\x06 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\njoin_exprs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\rusing_columns\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12"\n\tjoin_type\x18\x05 \x01(\x0b\x32\x0f.ast.SpJoinType\x12\x10\n\x08variadic\x18\x06 \x01(\x08"^\n\x10SpDataframeLimit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x03 \x01(\x03"\xa1\x01\n\x16SpDataframeNaturalJoin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x04 \x01(\x0b\x32\x0f.ast.SpJoinType"\xa3\x01\n\x17SpDataframePivot_Column\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x03 \x01(\t\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc9\x01\n\x16SpDataframeRandomSplit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07weights\x18\x03 \x03(\x01\x12)\n\x04seed\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x86\x01\n\x11SpDataframeRename\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xba\x01\n\x11SpDataframeSample\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12:\n\x14probability_fraction\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12(\n\x03num\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x17\n\x04\x63ols\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeSelect_Strings\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ols\x18\x03 \x03(\t\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x85\x01\n\x0fSpDataframeSort\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x10SpDataframeUnion\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"z\n\x13SpDataframeUnionAll\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"\x80\x01\n\x19SpDataframeUnionAllByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"}\n\x16SpDataframeUnionByName\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr"y\n\x10SpDataframeWhere\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8a\x01\n\x15SpDataframeWithColumn\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08\x63ol_name\x18\x03 \x01(\t\x12\x1e\n\x03\x63ol\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExpr"\x8f\x01\n\x16SpDataframeWithColumns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x11\n\tcol_names\x18\x03 \x03(\t\x12!\n\x06values\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x03 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\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\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"9\n\nSpReadJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"8\n\tSpReadOrc\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"<\n\rSpReadParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t":\n\x0bSpReadTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04name\x18\x02 \x01(\t"8\n\tSpReadXml\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04path\x18\x02 \x01(\t"\xcb\x01\n\nSpCopyInto\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12-\n\x13target_column_names\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12*\n\x07options\x18\x05 \x01(\x0b\x32\x19.ast.Map_String_SpVariant"\xeb\x02\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\x0csp_write_csv\x18\x03 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x04 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x05 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x06 \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"[\n\nSpWriteCsv\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\\\n\x0bSpWriteJson\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"_\n\x0eSpWriteParquet\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04path\x18\x03 \x01(\t"\x95\x01\n\x0cSpWriteTable\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x35\n\x13\x64\x61tabase_and_schema\x18\x03 \x01(\x0b\x32\x18.ast.Tuple_String_String\x12\r\n\x05table\x18\x04 \x01(\t"B\n\x1eSpDataframeStatsApproxQuantile\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"8\n\x14SpDataframeStatsCorr\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"7\n\x13SpDataframeStatsCov\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr"w\n\x18SpDataframeStatsCrossTab\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04\x63ol1\x18\x03 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x04 \x01(\t"\xb5\x01\n\x18SpDataframeStatsSampleBy\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1e\n\x03\x63ol\x18\x03 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x38\n\tfractions\x18\x04 \x03(\x0b\x32%.ast.Tuple_SpVariant_SpVariant_Double"\xc9\x0c\n SpRelationalGroupedDataframeExpr\x12\x38\n\x15sp_dataframe_group_by\x18\x01 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x02 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x03 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x05 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\x07 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\x08 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\t \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18\n \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18\x0b \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18\x0c \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\r \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18\x0e \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18\x0f \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18\x10 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18\x11 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18\x12 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18\x13 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x42\t\n\x07variant"\xc1\x01\n#SpRelationalGroupedDataframeAgg_Map\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x04 \x01(\x08\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xaf\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12 \n\x05\x65xprs\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x10\n\x08\x61gg_name\x18\x03 \x01(\t\x12\x1f\n\x04\x63ols\x18\x04 \x03(\x0b\x32\x11.ast.SpColumnExpr"u\n!SpRelationalGroupedDataframeCount\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\x02\x64\x66\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1f\n\x04\x63ols\x18\x03 \x03(\x0b\x32\x11.ast.SpColumnExpr":\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\router_columns\x18\x01 \x03(\t\x12\x15\n\rinner_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\x81I\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\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\x0etrait_unary_op\x18\x0e \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x0f \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x10 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x11 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x12 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x13 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x14 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x15 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x16 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x17 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x18 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x19 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1a \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1b \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1c \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1d \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1e \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1f \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/ \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x30 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x31 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x32 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x33 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x35 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x36 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x37 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x38 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x39 \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\x08some_val\x18> \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18? \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18@ \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x41 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x42 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x43 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x44 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x45 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x46 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18G \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18H \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18I \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18J \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18K \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18L \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18M \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18N \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18O \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18P \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18Q \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18R \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18S \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18T \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18U \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18V \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18W \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18X \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18Y \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18Z \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_apply\x18\\ \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18] \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12<\n\x17sp_dataframe_cross_join\x18^ \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18_ \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18` \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x61 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x42\n\x1asp_dataframe_drop__columns\x18\x62 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_ColumnsH\x00\x12\x42\n\x1asp_dataframe_drop__strings\x18\x63 \x01(\x0b\x32\x1c.ast.SpDataframeDrop_StringsH\x00\x12\x35\n\x13sp_dataframe_except\x18\x64 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x65 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x66 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18g \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18h \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18i \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18j \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18k \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18l \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18m \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18n \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18o \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18p \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18q \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18r \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18s \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18t \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18u \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18v \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18w \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18x \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12@\n\x19sp_dataframe_random_split\x18y \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18z \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18{ \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18| \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18} \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x35\n\x13sp_dataframe_sample\x18~ \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18\x7f \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12G\n\x1csp_dataframe_select__strings\x18\x80\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_StringsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x81\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x82\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12\x46\n\x1csp_dataframe_stats_cross_tab\x18\x83\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsCrossTabH\x00\x12\x46\n\x1csp_dataframe_stats_sample_by\x18\x84\x01 \x01(\x0b\x32\x1d.ast.SpDataframeStatsSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x85\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x86\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x87\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x88\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x8a\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x8b\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x8c\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12%\n\nsp_flatten\x18\x8d\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\x8e\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12!\n\x08sp_range\x18\x8f\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\x90\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\x91\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\x92\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\x93\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\x94\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\x95\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\x96\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\x97\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\x98\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\x99\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\x9a\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\x9b\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\x9c\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\x9d\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\x9e\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\x9f\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xa0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xa1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_sql\x18\xa2\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xa3\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xa4\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xa5\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12(\n\x0csp_write_csv\x18\xa6\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xa7\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12\x30\n\x10sp_write_parquet\x18\xa8\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xa9\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xaa\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xab\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xac\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08time_val\x18\xad\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xae\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xaf\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xb0\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x12\x1a\n\x04udtf\x18\xb1\x01 \x01(\x0b\x32\t.ast.UdtfH\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\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x17\n\x04\x65xpr\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue"/\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(\tB\x1e\n\x1c\x63om.snowflake.snowpark.protob\x06proto3' ) _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "proto.ast_pb2", globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "Snowpark.proto.ast_pb2", globals()) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None diff --git a/src/snowflake/snowpark/dataframe.py b/src/snowflake/snowpark/dataframe.py index 8c5afd40490..3f09e31274f 100644 --- a/src/snowflake/snowpark/dataframe.py +++ b/src/snowflake/snowpark/dataframe.py @@ -4218,7 +4218,7 @@ def random_split( for w in weights: ast.weights.append(w) if seed: - ast.seed = seed + ast.seed.value = seed if statement_params: ast.statement_params = statement_params if len(weights) == 1: @@ -4227,6 +4227,8 @@ def random_split( for w in weights: if w <= 0: raise ValueError("weights must be positive numbers") + if self._session._conn._suppress_not_implemented_error: + return None temp_column_name = random_name_for_temp_object(TempObjectType.COLUMN) cached_df = self.with_column( diff --git a/tests/ast/data/df_random_split.test b/tests/ast/data/df_random_split.test index 70469e84b52..fea5379516d 100644 --- a/tests/ast/data/df_random_split.test +++ b/tests/ast/data/df_random_split.test @@ -12,6 +12,6 @@ df3 = df.random_split(weights, seed=24) res1 = session.table("test_table") -res2 = res1.random_split([0.1, 0.2, 0.3]) +res2 = res1.random_split([0.1, 0.2, 0.3], None) -res4 = res1.random_split([0.1, 0.2, 0.3], 24) +res3 = res1.random_split([0.1, 0.2, 0.3], 24)