diff --git a/src/snowflake/snowpark/_internal/ast.py b/src/snowflake/snowpark/_internal/ast.py index 99785dc6c53..9a7edcf83f9 100644 --- a/src/snowflake/snowpark/_internal/ast.py +++ b/src/snowflake/snowpark/_internal/ast.py @@ -8,7 +8,8 @@ import json import sys import uuid -from typing import Any, Sequence, Tuple +from dataclasses import dataclass +from typing import Any, Callable, Sequence, Tuple from google.protobuf.json_format import ParseDict @@ -120,12 +121,21 @@ def decode_ast_response_from_snowpark(res: dict, session_parameters: Any) -> Any ) +@dataclass +class TrackedCallable: + var_id: int + func: Callable + + class AstBatch: def __init__(self, session) -> None: self._session = session self._id_gen = itertools.count(start=1) self._init_batch() + # Track callables in this dict (memory id -> TrackedCallable). + self._callables = {} + def assign(self, symbol=None): stmt = self._request.body.add() # TODO: extended BindingId spec from the branch snowpark-ir. @@ -161,3 +171,14 @@ def _init_batch(self): self._request.client_language.python_language.version.label = releaselevel self._request.client_ast_version = CLIENT_AST_VERSION + + def register_callable(self, func: Callable) -> int: + """Tracks client-side an actual callable and returns an ID.""" + k = id(func) + + if k in self._callables.keys(): + return self._callables[k].var_id + + next_id = len(self._callables) + self._callables[k] = TrackedCallable(var_id=next_id, func=func) + return next_id diff --git a/src/snowflake/snowpark/_internal/ast_utils.py b/src/snowflake/snowpark/_internal/ast_utils.py index aec9149e0e9..94669c7e02e 100644 --- a/src/snowflake/snowpark/_internal/ast_utils.py +++ b/src/snowflake/snowpark/_internal/ast_utils.py @@ -9,7 +9,8 @@ import sys from functools import reduce from pathlib import Path -from typing import Any, Callable, Dict, Iterable, Optional, Tuple, Union +from types import ModuleType +from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union import snowflake.snowpark import snowflake.snowpark._internal.proto.ast_pb2 as proto @@ -32,6 +33,7 @@ ColumnOrSqlExpr, ) from snowflake.snowpark._internal.utils import str_to_enum +from snowflake.snowpark.types import DataType # This flag causes an explicit error to be raised if any Snowpark object instance is missing an AST or field, when this # AST or field is required to populate the AST field of a different Snowpark object instance. @@ -252,12 +254,11 @@ def build_builtin_fn_apply( def build_udf_apply( ast: proto.Expr, - udf_name: str, + udf_id: int, *args: Tuple[Union[proto.Expr, Any]], ) -> None: expr = with_src_position(ast.apply_expr) - _set_fn_name(udf_name, expr.fn.udf) - with_src_position(expr.fn.udf) + expr.fn.sp_fn_ref.id.bitfield1 = udf_id build_fn_apply_args(ast, *args) @@ -730,15 +731,6 @@ def fill_sp_write_file( build_expr_from_python_val(t._2, v) -def build_proto_from_callable( - expr_builder: proto.SpCallable, func: Callable, ast_batch: Optional[AstBatch] = None -): - """Registers a python callable (i.e., a function or lambda) to the AstBatch and encodes it as SpCallable protobuf.""" - - # TODO SNOW-1514712: This will be filled in as part of UDF ticket. - expr_builder.name = func.__name__ - - def build_proto_from_pivot_values( expr_builder: proto.SpPivotValue, values: Optional[Union[Iterable["LiteralType"], "DataFrame"]], # noqa: F821 @@ -751,3 +743,116 @@ def build_proto_from_pivot_values( expr_builder.sp_pivot_value__dataframe.v.id.bitfield1 = values._ast_id else: build_expr_from_python_val(expr_builder.sp_pivot_value__expr.v, values) + + +def build_proto_from_callable( + expr_builder: proto.SpCallable, func: Callable, ast_batch: Optional[AstBatch] = None +): + """Registers a python callable (i.e., a function or lambda) to the AstBatch and encodes it as SpCallable protobuf.""" + + udf_id = None + if ast_batch is not None: + udf_id = ast_batch.register_callable(func) + expr_builder.id = udf_id + + if callable(func) and func.__name__ == "<lambda>": + # Won't be able to extract name, unless there is <sym> = <lambda> + # use string rep. + expr_builder.name = "<lambda>" + + # If it is not the first tracked lambda, use a unique ref name. + if udf_id is not None and udf_id != 0: + expr_builder.name = f"<lambda [{udf_id}]>" + + else: + # Use the actual function name. Note: We do not support different scopes yet, need to be careful with this then. + expr_builder.name = func.__name__ + + +def build_udf( + ast: proto.Udf, + func: Union[Callable, Tuple[str, str]], + return_type: Optional[DataType], + input_types: Optional[List[DataType]], + name: Optional[str], + stage_location: Optional[str] = None, + imports: Optional[List[Union[str, Tuple[str, str]]]] = None, + packages: Optional[List[Union[str, ModuleType]]] = None, + replace: bool = False, + if_not_exists: bool = False, + parallel: int = 4, + max_batch_size: Optional[int] = None, + strict: bool = False, + secure: bool = False, + external_access_integrations: Optional[List[str]] = None, + secrets: Optional[Dict[str, str]] = None, + immutable: bool = False, + comment: Optional[str] = None, + *, + statement_params: Optional[Dict[str, str]] = None, + source_code_display: bool = True, + is_permanent: bool = False, + session=None, + **kwargs, +): + """Helper function to encode UDF parameters (used in both regular and mock UDFRegistration).""" + # This is the name the UDF is registered to. Not the name to display when unaparsing, that name is captured in callable. + + if name is not None: + _set_fn_name(name, ast) + + # TODO: to unparse/reference callables client-side - track them in ast_batch. + build_proto_from_callable( + ast.func, func, session._ast_batch if session is not None else None + ) + + if return_type is not None: + return_type._fill_ast(ast.return_type) + if input_types is not None and len(input_types) != 0: + for input_type in input_types: + input_type._fill_ast(ast.input_types.list.add()) + ast.is_permanent = is_permanent + if stage_location is not None: + ast.stage_location = stage_location + if imports is not None and len(imports) != 0: + for import_ in imports: + import_expr = proto.SpTableName() + build_sp_table_name(import_expr, import_) + ast.imports.append(import_expr) + if packages is not None and len(packages) != 0: + for package in packages: + if isinstance(package, ModuleType): + raise NotImplementedError + ast.packages.append(package) + ast.replace = replace + ast.if_not_exists = if_not_exists + ast.parallel = parallel + if max_batch_size is not None: + ast.max_batch_size.value = max_batch_size + + if statement_params is not None and len(statement_params) != 0: + for k, v in statement_params.items(): + t = ast.statement_params.add() + t._1 = k + t._2 = v + + ast.source_code_display = source_code_display + ast.strict = strict + ast.secure = secure + if ( + external_access_integrations is not None + and len(external_access_integrations) != 0 + ): + ast.external_access_integrations.extend(external_access_integrations) + if secrets is not None and len(secrets) != 0: + for k, v in secrets.items(): + t = ast.secrets.add() + t._1 = k + t._2 = v + ast.immutable = immutable + if comment is not None: + ast.comment.value = comment + for k, v in kwargs.items(): + t = ast.kwargs.add() + t._1 = k + build_expr_from_python_val(t._2, v) diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index 918e2d85979..3b769648b5c 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -23,7 +23,7 @@ import snowflake.snowpark._internal.proto.scalapb_pb2 as scalapb_dot_scalapb__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x15scalapb/scalapb.proto"$\n\tList_Expr\x12\x17\n\x04list\x18\x01 \x03(\x0b\x32\t.ast.Expr"4\n\x11List_SpColumnExpr\x12\x1f\n\x04list\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr"\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";\n\x11Map_String_String\x12&\n\x04list\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"?\n\x0fTuple_Expr_Expr\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"5\n\x10Tuple_Expr_Float\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\n\n\x02_2\x18\x02 \x01(\x01"6\n\x11Tuple_String_Expr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"2\n\x18Tuple_String_List_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x03(\t"F\n\x19Tuple_String_SpColumnExpr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1d\n\x02_2\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"@\n\x16Tuple_String_SpVariant\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"-\n\x13Tuple_String_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x01(\t"\xa4\x01\n\x08Language\x12*\n\rjava_language\x18\x01 \x01(\x0b\x32\x11.ast.JavaLanguageH\x00\x12.\n\x0fpython_language\x18\x02 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x03 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x42\x0e\n\x0csealed_value"/\n\x0ePythonLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version".\n\rScalaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"-\n\x0cJavaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"E\n\x07Version\x12\r\n\x05label\x18\x01 \x01(\t\x12\r\n\x05major\x18\x02 \x01(\x03\x12\r\n\x05minor\x18\x03 \x01(\x03\x12\r\n\x05patch\x18\x04 \x01(\x03"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"v\n\x06\x46nName\x12\'\n\x0c\x66n_name_flat\x18\x01 \x01(\x0b\x32\x0f.ast.FnNameFlatH\x00\x12\x33\n\x12\x66n_name_structured\x18\x02 \x01(\x0b\x32\x15.ast.FnNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1a\n\nFnNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t" \n\x10\x46nNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"\xc8\x01\n\x0fTableFnCallType\x12%\n\x1btable_fn_call_type__builtin\x18\x01 \x01(\x08H\x00\x12+\n!table_fn_call_type__call_table_fn\x18\x02 \x01(\x08H\x00\x12.\n$table_fn_call_type__session_table_fn\x18\x03 \x01(\x08H\x00\x12&\n\x1ctable_fn_call_type__table_fn\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xaa\x02\n\x18SpWindowRelativePosition\x12\x32\n(sp_window_relative_position__current_row\x18\x01 \x01(\x08H\x00\x12W\n%sp_window_relative_position__position\x18\x02 \x01(\x0b\x32&.ast.SpWindowRelativePosition_PositionH\x00\x12:\n0sp_window_relative_position__unbounded_following\x18\x03 \x01(\x08H\x00\x12:\n0sp_window_relative_position__unbounded_preceding\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant".\n!SpWindowRelativePosition_Position\x12\t\n\x01n\x18\x01 \x01(\x03"q\n\x0bPdIndexExpr\x12 \n\x08\x66lex_ord\x18\x01 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x02 \x01(\x0b\x32\x08.ast.KeyH\x00\x12\x17\n\x03ord\x18\x03 \x01(\x0b\x32\x08.ast.OrdH\x00\x42\x0e\n\x0csealed_value"\x1b\n\x03Ord\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1f\n\x07\x46lexOrd\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1b\n\x03Key\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\xb9\x02\n\x12PdProjectIndexExpr\x12/\n\x10\x62ool_filter_list\x18\x01 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x12)\n\rflex_ord_list\x18\x02 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12+\n\x0e\x66lex_ord_range\x18\x03 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12 \n\x08key_list\x18\x04 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12"\n\tkey_range\x18\x05 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x06 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12"\n\tord_range\x18\x07 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"Z\n\x0c\x46lexOrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"=\n\x08KeyRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr""\n\x07OrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr"&\n\x0b\x46lexOrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr""\n\x07KeyList\x12\x17\n\x04keys\x18\x01 \x01(\x0b\x32\t.ast.Expr"+\n\x0e\x42oolFilterList\x12\x19\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\t.ast.Expr"}\n\rSpFlattenMode\x12\x1f\n\x15sp_flatten_mode_array\x18\x01 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x02 \x01(\x08H\x00\x12 \n\x16sp_flatten_mode_object\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"P\n\x0eSpTableVariant\x12\x1a\n\x10sp_session_table\x18\x01 \x01(\x08H\x00\x12\x17\n\rsp_table_init\x18\x02 \x01(\x08H\x00\x42\t\n\x07variant"\xc0\x01\n\nSpSaveMode\x12\x1d\n\x13sp_save_mode_append\x18\x01 \x01(\x08H\x00\x12&\n\x1csp_save_mode_error_if_exists\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_save_mode_ignore\x18\x03 \x01(\x08H\x00\x12 \n\x16sp_save_mode_overwrite\x18\x04 \x01(\x08H\x00\x12\x1f\n\x15sp_save_mode_truncate\x18\x05 \x01(\x08H\x00\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1c\n\x12sp_join_type__asof\x18\x01 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x02 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x03 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__inner\x18\x04 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x05 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x07 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x03 \x01(\x08H\x00\x12#\n\x19sp_timestamp_time_zone_tz\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xa2\x06\n\nSpDataType\x12)\n\rsp_array_type\x18\x01 \x01(\x0b\x32\x10.ast.SpArrayTypeH\x00\x12\x18\n\x0esp_binary_type\x18\x02 \x01(\x08H\x00\x12\x19\n\x0fsp_boolean_type\x18\x03 \x01(\x08H\x00\x12\x16\n\x0csp_byte_type\x18\x04 \x01(\x08H\x00\x12\x37\n\x14sp_column_identifier\x18\x05 \x01(\x0b\x32\x17.ast.SpColumnIdentifierH\x00\x12\x16\n\x0csp_date_type\x18\x06 \x01(\x08H\x00\x12-\n\x0fsp_decimal_type\x18\x07 \x01(\x0b\x32\x12.ast.SpDecimalTypeH\x00\x12\x18\n\x0esp_double_type\x18\x08 \x01(\x08H\x00\x12\x17\n\rsp_float_type\x18\t \x01(\x08H\x00\x12\x1b\n\x11sp_geography_type\x18\n \x01(\x08H\x00\x12\x1a\n\x10sp_geometry_type\x18\x0b \x01(\x08H\x00\x12\x19\n\x0fsp_integer_type\x18\x0c \x01(\x08H\x00\x12\x16\n\x0csp_long_type\x18\r \x01(\x08H\x00\x12%\n\x0bsp_map_type\x18\x0e \x01(\x0b\x32\x0e.ast.SpMapTypeH\x00\x12\x16\n\x0csp_null_type\x18\x0f \x01(\x08H\x00\x12\x17\n\rsp_short_type\x18\x10 \x01(\x08H\x00\x12+\n\x0esp_string_type\x18\x11 \x01(\x0b\x32\x11.ast.SpStringTypeH\x00\x12-\n\x0fsp_struct_field\x18\x12 \x01(\x0b\x32\x12.ast.SpStructFieldH\x00\x12+\n\x0esp_struct_type\x18\x13 \x01(\x0b\x32\x11.ast.SpStructTypeH\x00\x12\x16\n\x0csp_time_type\x18\x14 \x01(\x08H\x00\x12\x31\n\x11sp_timestamp_type\x18\x15 \x01(\x0b\x32\x14.ast.SpTimestampTypeH\x00\x12\x19\n\x0fsp_variant_type\x18\x16 \x01(\x08H\x00\x12+\n\x0esp_vector_type\x18\x17 \x01(\x0b\x32\x11.ast.SpVectorTypeH\x00\x42\t\n\x07variant">\n\x0bSpArrayType\x12\x12\n\nstructured\x18\x01 \x01(\x08\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType""\n\x12SpColumnIdentifier\x12\x0c\n\x04name\x18\x01 \x01(\t"1\n\rSpDecimalType\x12\x11\n\tprecision\x18\x01 \x01(\x03\x12\r\n\x05scale\x18\x02 \x01(\x03"c\n\tSpMapType\x12\x1f\n\x06key_ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08\x12!\n\x08value_ty\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType";\n\x0cSpStringType\x12+\n\x06length\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"y\n\rSpStructField\x12\x32\n\x11\x63olumn_identifier\x18\x01 \x01(\x0b\x32\x17.ast.SpColumnIdentifier\x12"\n\tdata_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x10\n\x08nullable\x18\x03 \x01(\x08"F\n\x0cSpStructType\x12"\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x12.ast.SpStructField\x12\x12\n\nstructured\x18\x02 \x01(\x08">\n\x0fSpTimestampType\x12+\n\ttime_zone\x18\x01 \x01(\x0b\x32\x18.ast.SpTimestampTimeZone">\n\x0cSpVectorType\x12\x11\n\tdimension\x18\x01 \x01(\x03\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType"\xc2\x05\n\tSpVariant\x12<\n\x17sp_variant__big_decimal\x18\x01 \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12\x34\n\x13sp_variant__big_int\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12/\n\x10sp_variant__bool\x18\x03 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x31\n\x11sp_variant__bytes\x18\x04 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12/\n\x10sp_variant__date\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12\x33\n\x12sp_variant__double\x18\x06 \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\x00\x12\x31\n\x11sp_variant__float\x18\x07 \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12-\n\x0fsp_variant__int\x18\x08 \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12/\n\x10sp_variant__list\x18\t \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x33\n\x12sp_variant__object\x18\n \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12\x33\n\x12sp_variant__string\x18\x0b \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__time\x18\x0c \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x39\n\x15sp_variant__timestamp\x18\r \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x42\x0e\n\x0csealed_value"7\n\x10SpVariant_Object\x12#\n\x01v\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"3\n\x0eSpVariant_List\x12!\n\x01v\x18\x01 \x03(\x0b\x32\x16.ast.Map_String_String" \n\x13SpVariant_Timestamp\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Date\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Time\x12\t\n\x01v\x18\x01 \x01(\x04"\x1c\n\x0fSpVariant_Bytes\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1d\n\x10SpVariant_String\x12\t\n\x01v\x18\x01 \x01(\t"\x1b\n\x0eSpVariant_Bool\x12\t\n\x01v\x18\x01 \x01(\x08"\x1d\n\x10SpVariant_BigInt\x12\t\n\x01v\x18\x01 \x01(\x0c"!\n\x14SpVariant_BigDecimal\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1a\n\rSpVariant_Int\x12\t\n\x01v\x18\x01 \x01(\x03"\x1c\n\x0fSpVariant_Float\x12\t\n\x01v\x18\x01 \x01(\x04"\x1d\n\x10SpVariant_Double\x12\t\n\x01v\x18\x01 \x01(\x04"\x91\x01\n\x0bSpTableName\x12\x32\n\x12sp_table_name_flat\x18\x01 \x01(\x0b\x32\x14.ast.SpTableNameFlatH\x00\x12>\n\x18sp_table_name_structured\x18\x02 \x01(\x0b\x32\x1a.ast.SpTableNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1f\n\x0fSpTableNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t"%\n\x15SpTableNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"=\n\x15StagedPandasDataframe\x12$\n\ntemp_table\x18\x01 \x01(\x0b\x32\x10.ast.SpTableName"\xe1\x01\n\x0fSpDataframeData\x12<\n\x17sp_dataframe_data__list\x18\x01 \x01(\x0b\x32\x19.ast.SpDataframeData_ListH\x00\x12@\n\x19sp_dataframe_data__pandas\x18\x02 \x01(\x0b\x32\x1b.ast.SpDataframeData_PandasH\x00\x12>\n\x18sp_dataframe_data__tuple\x18\x03 \x01(\x0b\x32\x1a.ast.SpDataframeData_TupleH\x00\x42\x0e\n\x0csealed_value"-\n\x14SpDataframeData_List\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr".\n\x15SpDataframeData_Tuple\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr"?\n\x16SpDataframeData_Pandas\x12%\n\x01v\x18\x01 \x01(\x0b\x32\x1a.ast.StagedPandasDataframe"\xab\x01\n\x11SpDataframeSchema\x12@\n\x19sp_dataframe_schema__list\x18\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSchema_ListH\x00\x12\x44\n\x1bsp_dataframe_schema__struct\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeSchema_StructH\x00\x42\x0e\n\x0csealed_value"$\n\x16SpDataframeSchema_List\x12\n\n\x02vs\x18\x01 \x03(\t"8\n\x18SpDataframeSchema_Struct\x12\x1c\n\x01v\x18\x01 \x01(\x0b\x32\x11.ast.SpStructType"&\n\nSpCallable\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t"\x98\x01\n\x0cSpPivotValue\x12@\n\x19sp_pivot_value__dataframe\x18\x01 \x01(\x0b\x32\x1b.ast.SpPivotValue_DataframeH\x00\x12\x36\n\x14sp_pivot_value__expr\x18\x02 \x01(\x0b\x32\x16.ast.SpPivotValue_ExprH\x00\x42\x0e\n\x0csealed_value")\n\x11SpPivotValue_Expr\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"8\n\x16SpPivotValue_Dataframe\x12\x1e\n\x01v\x18\x01 \x01(\x0b\x32\x13.ast.SpDataframeRef"k\n\x0bSrcPosition\x12\x12\n\nend_column\x18\x01 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x02 \x01(\x03\x12\x0c\n\x04\x66ile\x18\x03 \x01(\t\x12\x14\n\x0cstart_column\x18\x04 \x01(\x03\x12\x12\n\nstart_line\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"\x8c\x01\n\x07Request\x12\x17\n\x04\x62ody\x18\x01 \x03(\x0b\x32\t.ast.Stmt\x12\x1a\n\x12\x63lient_ast_version\x18\x02 \x01(\x03\x12&\n\x0f\x63lient_language\x18\x03 \x01(\x0b\x32\r.ast.Language\x12$\n\x0e\x63lient_version\x18\x04 \x01(\x0b\x32\x0c.ast.Version"%\n\x08Response\x12\x19\n\x04\x62ody\x18\x01 \x03(\x0b\x32\x0b.ast.Result"\xde\x05\n\x05\x43onst\x12-\n\x0f\x62ig_decimal_val\x18\x01 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x02 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x03 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x04 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x05 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x06 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x07 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\x08 \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\t \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\n \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0b \x01(\x0b\x32\x0c.ast.NullValH\x00\x12-\n\x0fpython_date_val\x18\x0c \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\r \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x0e \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x0f \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x10 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x11 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x12 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"(\n\x07NoneVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"(\n\x07NullVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"3\n\x07\x42oolVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x08"4\n\x08Int32Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"4\n\x08Int64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"6\n\nFloat64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x01"5\n\tBigIntVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"U\n\rBigDecimalVal\x12\r\n\x05scale\x18\x01 \x01(\x03\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x03 \x01(\x0c"5\n\tStringVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\t"5\n\tBinaryVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"8\n\x0cTimestampVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07\x44\x61teVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07TimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"\xc1\x01\n\x12PythonTimestampVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x03 \x01(\x03\x12\x0e\n\x06minute\x18\x04 \x01(\x03\x12\r\n\x05month\x18\x05 \x01(\x03\x12\x0e\n\x06second\x18\x06 \x01(\x03\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x08 \x01(\x0b\x32\x13.ast.PythonTimeZone\x12\x0c\n\x04year\x18\t \x01(\x03"X\n\rPythonDateVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\r\n\x05month\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x0c\n\x04hour\x18\x01 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x17\n\x04\x62ody\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"Q\n\rSpDatatypeVal\x12!\n\x08\x64\x61tatype\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x06IfExpr\x12\x17\n\x04\x63ond\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition">\n\x07SomeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Expr"@\n\x08TupleVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"?\n\x07ListVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"F\n\tSeqMapVal\x12\x1a\n\x03kvs\x18\x01 \x03(\x0b\x32\r.ast.TupleVal\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\tApplyExpr\x12\x1a\n\x02\x66n\x18\x01 \x01(\x0b\x32\x0e.ast.FnRefExpr\x12*\n\nnamed_args\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xda\x01\n\tFnRefExpr\x12$\n\nbuiltin_fn\x18\x01 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12/\n\x10session_table_fn\x18\x02 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12\x30\n\x10stored_procedure\x18\x03 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12 \n\x08table_fn\x18\x04 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12\x17\n\x03udf\x18\x05 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"E\n\tBuiltinFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xb3\x01\n\x0fStoredProcedure\x12\x34\n\x10log_on_exception\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x30\n\x10statement_params\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"?\n\x03Udf\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"J\n\x0eSessionTableFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x07TableFn\x12\'\n\tcall_type\x18\x01 \x01(\x0b\x32\x14.ast.TableFnCallType\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"F\n\x07UnaryOp\x12\x17\n\x03neg\x18\x01 \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03not\x18\x02 \x01(\x0b\x32\x08.ast.NotH\x00\x42\t\n\x07variant"\xc6\x03\n\x05\x42inOp\x12\x17\n\x03\x61\x64\x64\x18\x01 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x02 \x01(\x0b\x32\x08.ast.AndH\x00\x12\x1e\n\x07\x62it_and\x18\x03 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x04 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x05 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12\x17\n\x03\x64iv\x18\x06 \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x07 \x01(\x0b\x32\x07.ast.EqH\x00\x12\x17\n\x03geq\x18\x08 \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18\t \x01(\x0b\x32\x07.ast.GtH\x00\x12\x17\n\x03leq\x18\n \x01(\x0b\x32\x08.ast.LeqH\x00\x12\x15\n\x02lt\x18\x0b \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18\x0c \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18\r \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neq\x18\x0e \x01(\x0b\x32\x08.ast.NeqH\x00\x12\x15\n\x02or\x18\x0f \x01(\x0b\x32\x07.ast.OrH\x00\x12\x17\n\x03pow\x18\x10 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x17\n\x03sub\x18\x11 \x01(\x0b\x32\x08.ast.SubH\x00\x42\t\n\x07variant"@\n\x03Not\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41nd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Or\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02\x45q\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Neq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Lt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Leq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Gt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Geq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"@\n\x03Neg\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41\x64\x64\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Sub\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mul\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x44iv\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mod\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Pow\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itAnd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x05\x42itOr\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itXor\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x08RangeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05start\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xe3\x02\n\x10SpWindowSpecExpr\x12\x36\n\x14sp_window_spec_empty\x18\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12;\n\x17sp_window_spec_order_by\x18\x02 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x43\n\x1bsp_window_spec_partition_by\x18\x03 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x45\n\x1csp_window_spec_range_between\x18\x04 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x43\n\x1bsp_window_spec_rows_between\x18\x05 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x42\t\n\x07variant"V\n\x11SpWindowSpecEmpty\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x02 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"q\n\x13SpWindowSpecOrderBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"u\n\x17SpWindowSpecPartitionBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb7\x01\n\x18SpWindowSpecRangeBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb6\x01\n\x17SpWindowSpecRowsBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xabP\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12+\n\x11trait_fn_ref_expr\x18\x03 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x05 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\x07 \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x08 \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\t \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\n \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12/\n\x13trait_sp_write_file\x18\x0b \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x0c \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\r \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x0e \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x0f \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x10 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x11 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x12 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x13 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x14 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x15 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x16 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x17 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x18 \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x19 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1a \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1b \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1c \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1d \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18\x1e \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18\x1f \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/ \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x30 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x31 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x32 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x33 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x34 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x35 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x36 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x37 \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x38 \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18\x39 \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18: \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18; \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18< \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18= \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18> \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\x34\n\x13sp_column_case_when\x18\x43 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\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\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_alias\x18[ \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\\ \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18] \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18^ \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18_ \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18` \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x61 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18\x62 \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18\x63 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18\x64 \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18\x65 \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18\x66 \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18g \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18h \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18i \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18j \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18k \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18l \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18m \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18o \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18p \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18q \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18r \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18s \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18t \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18u \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18v \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18w \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18x \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18y \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18z \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18{ \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18| \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18} \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18~ \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x7f \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x80\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x81\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x82\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x83\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x84\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x85\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x86\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x87\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x88\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x89\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x8a\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x8b\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x8c\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x8d\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x8e\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x8f\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x90\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x91\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x92\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x93\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x94\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x95\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x96\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x97\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x98\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x99\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x9a\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x9b\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\x9c\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x9d\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\x9e\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\x9f\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa0\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\xa1\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa2\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xa3\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xa4\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xa5\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xa6\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xa7\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xa8\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xa9\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xaa\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xab\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12j\n/sp_relational_grouped_dataframe_apply_in_pandas\x18\xac\x01 \x01(\x0b\x32..ast.SpRelationalGroupedDataframeApplyInPandasH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xad\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_pivot\x18\xae\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframePivotH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xaf\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12\x1d\n\x06sp_row\x18\xb0\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xb1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xb2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xb3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xb4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xb5\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xb6\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xb7\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xb8\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xb9\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xba\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xbb\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xbc\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xbd\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xbe\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xbf\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xc0\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xc1\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xc2\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"@\n\x03Ref\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"W\n\x08\x43\x61stExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03typ\x18\x02 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x95\x01\n\x0bPdDataframe\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x03 \x01(\x0b\x32\t.ast.Type\x12\x18\n\x05index\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x01\n\x08PdDropNa\x12\x17\n\x04\x61xis\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06subset\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06thresh\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x12PdDataframeSetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x0fPdDataframeILoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x06PdRepr\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\x12\x13\n\x0bmax_columns\x18\x02 \x01(\x03\x12\x10\n\x08max_rows\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x13\n\x01v\x18\x05 \x01(\x0b\x32\x08.ast.Ref"u\n\x0cPdReprResult\x12\x13\n\x0bnum_columns\x18\x01 \x01(\x03\x12\x18\n\x10num_head_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x10\n\x08num_rows\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c"\x9e\x01\n\x06Result\x12!\n\x0btrait_error\x18\x01 \x01(\x0b\x32\n.ast.ErrorH\x00\x12\x1e\n\x07\x65val_ok\x18\x02 \x01(\x0b\x32\x0b.ast.EvalOkH\x00\x12\x46\n\x1csession_reset_required_error\x18\x03 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"\xb3\x06\n\nEvalResult\x12!\n\x0btrait_const\x18\x01 \x01(\x0b\x32\n.ast.ConstH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x02 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x03 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x04 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x05 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x06 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x07 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x08 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\t \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\n \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\x0b \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0c \x01(\x0b\x32\x0c.ast.NullValH\x00\x12+\n\x0epd_repr_result\x18\r \x01(\x0b\x32\x11.ast.PdReprResultH\x00\x12-\n\x0fpython_date_val\x18\x0e \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x0f \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x10 \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x11 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x12 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x13 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x14 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"P\n\x06\x45valOk\x12\x1d\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x0f.ast.EvalResult\x12\x0b\n\x03uid\x18\x02 \x01(\x03\x12\x1a\n\x06var_id\x18\x03 \x01(\x0b\x32\n.ast.VarId"Z\n\x05\x45rror\x12\x46\n\x1csession_reset_required_error\x18\x01 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"D\n\x19SessionResetRequiredError\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xcc\x02\n\x0cSpColumnExpr\x12\x34\n\x13sp_column_case_when\x18\x01 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12\x36\n\x14sp_column_equal_null\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x03 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x04 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x05 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"m\n\x0fSpColumnSqlExpr\x12.\n\x08\x64\x66_alias\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\nSpCaseExpr\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr"Q\n\x10SpColumnCaseWhen\x12\x1e\n\x05\x63\x61ses\x18\x01 \x03(\x0b\x32\x0f.ast.SpCaseExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x91\n\n\nSpColumnFn\x12-\n\x0fsp_column_alias\x18\x01 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x03 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x04 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x05 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x06 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x07 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x08 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12<\n\x17sp_column_in__dataframe\x18\t \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18\n \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18\x0b \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18\x0c \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18\r \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18\x0e \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12>\n\x18sp_column_string_collate\x18\x0f \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18\x10 \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18\x11 \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18\x12 \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18\x13 \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18\x14 \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\x15 \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18\x16 \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x17 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\\\n\x14SpColumnApply_String\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x0bSpColumnAsc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x0fSpColumnBetween\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"I\n\x10SpColumnEqualNan\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x11SpColumnEqualNull\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"o\n\x14SpColumnIn_Dataframe\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x0eSpColumnIn_Seq\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"G\n\x0eSpColumnIsNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x0cSpColumnName\x12\r\n\x05\x61lias\x18\x01 \x01(\t\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x0cSpColumnOver\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"l\n\x13SpColumnWithinGroup\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x04\x63ols\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"g\n\x12SpColumnStringLike\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x14SpColumnStringRegexp\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\nparameters\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x18SpColumnStringStartsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"j\n\x16SpColumnStringEndsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x15SpColumnStringCollate\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"k\n\x16SpColumnStringContains\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xb2#\n\x0fSpDataframeExpr\x12\x35\n\x13sp_create_dataframe\x18\x01 \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x02 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x03 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x04 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x05 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x06 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x07 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x08 \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x37\n\x14sp_dataframe_collect\x18\t \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x33\n\x12sp_dataframe_count\x18\n \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x0b \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x39\n\x15sp_dataframe_describe\x18\x0c \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\r \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18\x0e \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x0f \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18\x10 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x11 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x12 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x13 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12;\n\x16sp_dataframe_intersect\x18\x14 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x15 \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x16 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x17 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x18 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x19 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x1a \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x1b \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x1c \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x1d \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1e \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1f \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18! \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18" \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x35\n\x13sp_dataframe_sample\x18# \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18$ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x42\n\x1asp_dataframe_select__exprs\x18% \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x31\n\x11sp_dataframe_show\x18& \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x31\n\x11sp_dataframe_sort\x18\' \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12O\n!sp_dataframe_stat_approx_quantile\x18( \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12:\n\x16sp_dataframe_stat_corr\x18) \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x38\n\x15sp_dataframe_stat_cov\x18* \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x43\n\x1bsp_dataframe_stat_cross_tab\x18+ \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x43\n\x1bsp_dataframe_stat_sample_by\x18, \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\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\x30 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18\x31 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18\x32 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18\x33 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12M\n sp_dataframe_with_column_renamed\x18\x34 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12@\n\x19sp_dataframe_with_columns\x18\x35 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_dataframe_write\x18\x36 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12$\n\nsp_flatten\x18\x37 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12(\n\x0csp_generator\x18\x38 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x39 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18: \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18; \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18< \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18= \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18> \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18? \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18@ \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12S\n#sp_relational_grouped_dataframe_agg\x18\x41 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12i\n/sp_relational_grouped_dataframe_apply_in_pandas\x18\x42 \x01(\x0b\x32..ast.SpRelationalGroupedDataframeApplyInPandasH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\x43 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_pivot\x18\x44 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframePivotH\x00\x12\x1c\n\x06sp_sql\x18\x45 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18\x46 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18G \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18H \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12-\n\x0fsp_write_pandas\x18I \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"H\n\x0fSpDataframeShow\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8c\x01\n\x10SpDataframeCount\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xd1\x01\n\x12SpDataframeCollect\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x0e\x63\x61se_sensitive\x18\x02 \x01(\x08\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x18\n\x10log_on_exception\x18\x04 \x01(\x08\x12\x0f\n\x07no_wait\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String"~\n\x11SpCreateDataframe\x12"\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06schema\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeSchema\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x80\x03\n\rSpWritePandas\x12\x19\n\x11\x61uto_create_table\x18\x01 \x01(\x08\x12/\n\nchunk_size\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x13\n\x0b\x63ompression\x18\x03 \x01(\t\x12\x19\n\x11\x63reate_temp_table\x18\x04 \x01(\x08\x12 \n\x02\x64\x66\x18\x05 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06kwargs\x18\x06 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x10\n\x08on_error\x18\x07 \x01(\t\x12\x11\n\toverwrite\x18\x08 \x01(\x08\x12\x10\n\x08parallel\x18\t \x01(\x03\x12\x19\n\x11quote_identifiers\x18\n \x01(\x08\x12\x1d\n\x03src\x18\x0b \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\ntable_name\x18\x0c \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\r \x01(\t"\xb4\x01\n\tSpFlatten\x12\x18\n\x05input\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x02 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x03 \x01(\x08\x12*\n\x04path\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x0bSpGenerator\x12\x1a\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x12time_limit_seconds\x18\x04 \x01(\x03\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\x8c\x01\n\x07SpRange\x12(\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05start\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\r\n\x05query\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"s\n\x11SpStoredProcedure\x12\x1c\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x91\x01\n\x07SpTable\x12!\n\x19is_temp_table_for_cleanup\x18\x01 \x01(\x08\x12\x1e\n\x04name\x18\x02 \x01(\x0b\x32\x10.ast.SpTableName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\x07variant\x18\x04 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x15min_non_nulls_per_row\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12+\n\x06thresh\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"\xb9\x01\n\x11SpDataframeNaFill\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12\x18\n\x05value\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x05 \x01(\x0b\x32\x14.ast.Map_String_Expr"\xae\x02\n\x14SpDataframeNaReplace\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x02 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12\'\n\x0fto_replace_list\x18\x05 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x06 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x08 \x01(\x0b\x32\x0e.ast.List_Expr"r\n\x0eSpDataframeAgg\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x05\x65xprs\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\x10SpDataframeAlias\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"e\n\x10SpDataframeApply\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\x0eSpDataframeCol\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xd9\x01\n\x14SpDataframeCrossJoin\x12!\n\x03lhs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeCube\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"v\n\x13SpDataframeDescribe\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x13SpDataframeDistinct\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeDrop\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x19SpDataframeDropDuplicates\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x11SpDataframeExcept\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x11SpDataframeFilter\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xdf\x01\n\x12SpDataframeFlatten\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05input\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x03 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x04 \x01(\x08\x12*\n\x04path\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x10SpDataframeFirst\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"u\n\x12SpDataframeGroupBy\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x14SpDataframeIntersect\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x02\n\x0fSpDataframeJoin\x12\x1c\n\tjoin_expr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12"\n\x0fmatch_condition\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12!\n\x03rhs\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1f\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12(\n\njoin_exprs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\'\n\rusing_columns\x18\x05 \x01(\x0b\x32\x10.ast.List_String\x12\x10\n\x08variadic\x18\x06 \x01(\x08"n\n\x10SpDataframeLimit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x02 \x01(\x03\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa1\x01\n\x16SpDataframeNaturalJoin\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x17SpDataframePivot_Column\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc9\x01\n\x16SpDataframeRandomSplit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12)\n\x04seed\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0f\n\x07weights\x18\x05 \x03(\x01"\xa8\x01\n\x11SpDataframeRename\x12 \n\rcol_or_mapper\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x30\n\nnew_column\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"t\n\x11SpDataframeRollup\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x01\n\x11SpDataframeSample\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\x03num\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x14probability_fraction\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"{\n\x17SpDataframeSelect_Exprs\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x65xprs\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xa0\x01\n\x0fSpDataframeSort\x12\x1c\n\tascending\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x15\n\rcols_variadic\x18\x03 \x01(\x08\x12 \n\x02\x64\x66\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"x\n\x10SpDataframeUnion\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x13SpDataframeUnionAll\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x81\x01\n\x19SpDataframeUnionAllByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"~\n\x16SpDataframeUnionByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x10SpDataframeWhere\x12$\n\tcondition\x18\x01 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x82\x01\n\x15SpDataframeWithColumn\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x10\n\x08\x63ol_name\x18\x02 \x01(\t\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x1cSpDataframeWithColumnRenamed\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x16SpDataframeWithColumns\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x04 \x03(\x0b\x32\t.ast.Expr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x02 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"O\n\x0eSpGroupingSets\x12\x1e\n\x04sets\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xe4\x01\n\x1dSpDataframeAnalyticsMovingAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x10\n\x08order_by\x18\x05 \x03(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x0cwindow_sizes\x18\x07 \x03(\x03"\xe6\x01\n!SpDataframeAnalyticsCumulativeAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x12\n\nis_forward\x18\x05 \x01(\x08\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n\x1eSpDataframeAnalyticsComputeLag\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x0c\n\x04lags\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\x1fSpDataframeAnalyticsComputeLead\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\r\n\x05leads\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xfd\x01\n!SpDataframeAnalyticsTimeSeriesAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x18\n\x10sliding_interval\x18\x05 \x01(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08time_col\x18\x07 \x01(\t\x12\x0f\n\x07windows\x18\x08 \x03(\t"\xfd\x02\n\x11SpDataframeReader\x12>\n\x18sp_dataframe_reader_init\x18\x01 \x01(\x0b\x32\x1a.ast.SpDataframeReaderInitH\x00\x12\x42\n\x1asp_dataframe_reader_option\x18\x02 \x01(\x0b\x32\x1c.ast.SpDataframeReaderOptionH\x00\x12\x44\n\x1bsp_dataframe_reader_options\x18\x03 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12\x42\n\x1asp_dataframe_reader_schema\x18\x04 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12O\n!sp_dataframe_reader_with_metadata\x18\x05 \x01(\x0b\x32".ast.SpDataframeReaderWithMetadataH\x00\x42\t\n\x07variant"6\n\x15SpDataframeReaderInit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x17SpDataframeReaderOption\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05value\x18\x04 \x01(\x0b\x32\t.ast.Expr"\x8a\x01\n\x18SpDataframeReaderOptions\x12\'\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x83\x01\n\x17SpDataframeReaderSchema\x12&\n\x06reader\x18\x01 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12!\n\x06schema\x18\x02 \x01(\x0b\x32\x11.ast.SpStructType\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x92\x01\n\x1dSpDataframeReaderWithMetadata\x12*\n\x10metadata_columns\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"t\n\x0bSpReadTable\x12\x1e\n\x04name\x18\x01 \x01(\x0b\x32\x10.ast.SpTableName\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"`\n\tSpReadCsv\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\nSpReadJson\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\nSpReadAvro\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"`\n\tSpReadOrc\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"d\n\rSpReadParquet\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"`\n\tSpReadXml\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xe1\x03\n\x11SpDataframeWriter\x12J\n!trait_sp_dataframe_writer_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x02 \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12/\n\x13trait_sp_write_file\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12\x43\n\x1bsp_write_copy_into_location\x18\x04 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x05 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x06 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x07 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x08 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x42\t\n\x07variant"7\n\x19SpDataframeWriterSaveMode\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x18SpDataframeWriterOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"w\n\x10SpDataframeWrite\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tsave_mode\x18\x02 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xe2\x01\n\x0bSpWriteFile\x12\x43\n\x1bsp_write_copy_into_location\x18\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x02 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x04 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x42\t\n\x07variant"\xae\x02\n\nSpWriteCsv\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xaf\x02\n\x0bSpWriteJson\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x02\n\x0eSpWriteParquet\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xea\x02\n\x0cSpWriteTable\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\'\n\x0f\x63lustering_keys\x18\x02 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x14\n\x0c\x63olumn_order\x18\x03 \x01(\t\x12-\n\x07\x63omment\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x19\n\x11\x63reate_temp_table\x18\x05 \x01(\x08\x12\x16\n\x02id\x18\x06 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04mode\x18\x07 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String\x12$\n\ntable_name\x18\n \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\x0b \x01(\t"\xab\x03\n\x17SpWriteCopyIntoLocation\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x36\n\x10\x66ile_format_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x66ile_format_type\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x13\x66ormat_type_options\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x06 \x01(\x08\x12\x16\n\x02id\x18\x07 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x08 \x01(\t\x12\x1f\n\x0cpartition_by\x18\t \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\n \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x0b \x03(\x0b\x32\x18.ast.Tuple_String_String"\xe3\x01\n\x1eSpDataframeCreateOrReplaceView\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07is_temp\x18\x03 \x01(\x08\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xfa\x01\n&SpDataframeCreateOrReplaceDynamicTable\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03lag\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x11\n\twarehouse\x18\x07 \x01(\t"\xb7\x03\n\x18SpDataframeCopyIntoTable\x12,\n\x0c\x63opy_options\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x66iles\x18\x03 \x03(\t\x12\x33\n\x13\x66ormat_type_options\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12-\n\x07pattern\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x12\n\ntable_name\x18\x08 \x03(\t\x12\x16\n\x0etarget_columns\x18\t \x03(\t\x12"\n\x0ftransformations\x18\n \x03(\x0b\x32\t.ast.Expr\x12\x35\n\x0fvalidation_mode\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValue"\x8d\x01\n\x16SpDataframeCacheResult\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb7\x01\n\x1dSpDataframeStatApproxQuantile\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x12\n\npercentile\x18\x03 \x03(\x01\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x01\n\x13SpDataframeStatCorr\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb1\x01\n\x12SpDataframeStatCov\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb6\x01\n\x17SpDataframeStatCrossTab\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x9c\x01\n\x17SpDataframeStatSampleBy\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\tfractions\x18\x03 \x03(\x0b\x32\x15.ast.Tuple_Expr_Float\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa8\x06\n SpRelationalGroupedDataframeExpr\x12\x31\n\x11sp_dataframe_cube\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x02 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x03 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x05 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x07 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x35\n\x13sp_dataframe_rollup\x18\x08 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\t \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12S\n#sp_relational_grouped_dataframe_ref\x18\x0b \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x42\t\n\x07variant"X\n\x1fSpRelationalGroupedDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x9c\x01\n\x1fSpRelationalGroupedDataframeAgg\x12\x1f\n\x05\x65xprs\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xb1\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x10\n\x08\x61gg_name\x18\x01 \x01(\t\x12\x1e\n\x04\x63ols\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xf6\x01\n)SpRelationalGroupedDataframeApplyInPandas\x12\x1d\n\x04\x66unc\x18\x01 \x01(\x0b\x32\x0f.ast.SpCallable\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12&\n\x06kwargs\x18\x03 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12(\n\routput_schema\x18\x04 \x01(\x0b\x32\x11.ast.SpStructType\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\xe2\x01\n!SpRelationalGroupedDataframePivot\x12"\n\x0f\x64\x65\x66\x61ult_on_null\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1c\n\tpivot_col\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x06values\x18\x05 \x01(\x0b\x32\x11.ast.SpPivotValue"^\n\x05SpRow\x12\x1f\n\x05names\x18\x01 \x01(\x0b\x32\x10.ast.List_String\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x03 \x03(\x0b\x32\t.ast.Expr"8\n\x0b\x45xprArgList\x12\x17\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x02 \x01(\x08":\n\x0fSpDataframeType\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\x12\x16\n\x03tys\x18\x02 \x03(\x0b\x32\t.ast.Type"F\n\x16SpGroupedDataframeType\x12\x15\n\rinner_columns\x18\x01 \x03(\t\x12\x15\n\router_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xabW\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x03 \x01(\x0b\x32\t.ast.ExprH\x00\x12+\n\x11trait_fn_ref_expr\x18\x04 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x05 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x06 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x07 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12;\n\x19trait_sp_dataframe_reader\x18\x08 \x01(\x0b\x32\x16.ast.SpDataframeReaderH\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\x19trait_sp_window_spec_expr\x18\r \x01(\x0b\x32\x15.ast.SpWindowSpecExprH\x00\x12/\n\x13trait_sp_write_file\x18\x0e \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x0f \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x10 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x11 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x12 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x13 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x14 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x15 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x16 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x17 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x18 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x19 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1a \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1b \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1c \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1d \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1e \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1f \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18 \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18! \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18" \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18# \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18$ \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18% \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18& \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18\' \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18( \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18) \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18* \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18+ \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18, \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18- \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18. \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18/ \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x30 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x31 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x32 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x33 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x34 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x35 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x36 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x37 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x38 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x39 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18: \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18; \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18< \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18= \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18> \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18? \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18@ \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12\'\n\x0csp_case_expr\x18\x41 \x01(\x0b\x32\x0f.ast.SpCaseExprH\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\x34\n\x13sp_column_case_when\x18G \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\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>\n\x18sp_column_string_collate\x18T \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18U \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18V \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18W \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18X \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18Y \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18Z \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18[ \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\\ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\x35\n\x13sp_create_dataframe\x18] \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18^ \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18_ \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18` \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x61 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x62 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x63 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x64 \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x65 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18\x66 \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18g \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18h \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18i \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18j \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18k \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18l \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18m \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18n \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18o \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18p \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18q \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18r \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18s \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18t \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18u \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18v \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18w \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18x \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18y \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18z \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18{ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18| \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18} \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18~ \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x7f \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x80\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x81\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x83\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x84\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x85\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x86\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x87\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x88\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12?\n\x18sp_dataframe_reader_init\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeReaderInitH\x00\x12\x43\n\x1asp_dataframe_reader_option\x18\x8b\x01 \x01(\x0b\x32\x1c.ast.SpDataframeReaderOptionH\x00\x12\x45\n\x1bsp_dataframe_reader_options\x18\x8c\x01 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12\x43\n\x1asp_dataframe_reader_schema\x18\x8d\x01 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12P\n!sp_dataframe_reader_with_metadata\x18\x8e\x01 \x01(\x0b\x32".ast.SpDataframeReaderWithMetadataH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8f\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x90\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x91\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x92\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x93\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x94\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x95\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x96\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x97\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x98\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x99\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x9a\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x9b\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x9c\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x9d\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x9e\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9f\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\xa0\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\xa1\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\xa2\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\xa3\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\xa4\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa5\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa6\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa7\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\xa8\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa9\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\xaa\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xab\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xac\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xad\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xae\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xaf\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xb0\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xb1\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xb2\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xb3\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xb4\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12j\n/sp_relational_grouped_dataframe_apply_in_pandas\x18\xb5\x01 \x01(\x0b\x32..ast.SpRelationalGroupedDataframeApplyInPandasH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb6\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_pivot\x18\xb7\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframePivotH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xb8\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12\x1d\n\x06sp_row\x18\xb9\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xba\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xbb\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xbc\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xbd\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x37\n\x14sp_window_spec_empty\x18\xbe\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12<\n\x17sp_window_spec_order_by\x18\xbf\x01 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x44\n\x1bsp_window_spec_partition_by\x18\xc0\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x46\n\x1csp_window_spec_range_between\x18\xc1\x01 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x44\n\x1bsp_window_spec_rows_between\x18\xc2\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc3\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xc4\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xc5\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xc6\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xc7\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xc8\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xc9\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xca\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xcb\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xcc\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xcd\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xce\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xcf\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xd0\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"K\n\x04Stmt\x12\x1d\n\x06\x61ssign\x18\x01 \x01(\x0b\x32\x0b.ast.AssignH\x00\x12\x19\n\x04\x65val\x18\x02 \x01(\x0b\x32\t.ast.EvalH\x00\x42\t\n\x07variant"x\n\x06\x41ssign\x12\x17\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03uid\x18\x03 \x01(\x03\x12\x1a\n\x06var_id\x18\x04 \x01(\x0b\x32\n.ast.VarId"/\n\x04\x45val\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xc0\x07\n\x04Type\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12,\n\x11trait_scalar_type\x18\x02 \x01(\x0b\x32\x0f.ast.ScalarTypeH\x00\x12 \n\x08\x61ny_type\x18\x03 \x01(\x0b\x32\x0c.ast.AnyTypeH\x00\x12"\n\tbool_type\x18\x04 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x05 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12\x1e\n\x07\x66n_type\x18\x06 \x01(\x0b\x32\x0b.ast.FnTypeH\x00\x12$\n\nint32_type\x18\x07 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x08 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12"\n\tlist_type\x18\t \x01(\x0b\x32\r.ast.ListTypeH\x00\x12 \n\x08map_type\x18\n \x01(\x0b\x32\x0c.ast.MapTypeH\x00\x12(\n\x0cnothing_type\x18\x0b \x01(\x0b\x32\x10.ast.NothingTypeH\x00\x12&\n\x0bnumber_type\x18\x0c \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12&\n\x0boption_type\x18\r \x01(\x0b\x32\x0f.ast.OptionTypeH\x00\x12\'\n\x0cpd_repr_type\x18\x0e \x01(\x0b\x32\x0f.ast.PdReprTypeH\x00\x12.\n\x10sp_col_expr_type\x18\x0f \x01(\x0b\x32\x12.ast.SpColExprTypeH\x00\x12\x31\n\x11sp_dataframe_type\x18\x10 \x01(\x0b\x32\x14.ast.SpDataframeTypeH\x00\x12@\n\x19sp_grouped_dataframe_type\x18\x11 \x01(\x0b\x32\x1b.ast.SpGroupedDataframeTypeH\x00\x12+\n\x0esp_window_type\x18\x12 \x01(\x0b\x32\x11.ast.SpWindowTypeH\x00\x12&\n\x0bstring_type\x18\x13 \x01(\x0b\x32\x0f.ast.StringTypeH\x00\x12$\n\ntuple_type\x18\x14 \x01(\x0b\x32\x0e.ast.TupleTypeH\x00\x12\x1c\n\x06ty_var\x18\x15 \x01(\x0b\x32\n.ast.TyVarH\x00\x12"\n\tunit_type\x18\x16 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x12(\n\x0cunknown_type\x18\x17 \x01(\x0b\x32\x10.ast.UnknownTypeH\x00\x42\t\n\x07variant"\r\n\x0bUnknownType"\t\n\x07\x41nyType"\xad\x02\n\nScalarType\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12"\n\tbool_type\x18\x02 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x03 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x04 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x05 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x06 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12"\n\tunit_type\x18\x07 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x42\t\n\x07variant"\xb6\x01\n\x0bNumericType\x12(\n\x0c\x66loat64_type\x18\x01 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x02 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x03 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x04 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x42\t\n\x07variant"\x0c\n\nNumberType"\r\n\x0bNothingType"\n\n\x08UnitType"\n\n\x08\x42oolType"\x0b\n\tInt32Type"\x0b\n\tInt64Type"\r\n\x0b\x46loat64Type"\x0c\n\nStringType"\x0c\n\nPdReprType";\n\x06\x46nType\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Type\x12\x16\n\x03ret\x18\x02 \x01(\x0b\x32\t.ast.Type"$\n\nOptionType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"#\n\tTupleType\x12\x16\n\x03tys\x18\x01 \x03(\x0b\x32\t.ast.Type""\n\x08ListType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"5\n\x07MapType\x12\x14\n\x01k\x18\x01 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Type"\x13\n\x05TyVar\x12\n\n\x02id\x18\x01 \x01(\t*8\n\x0b__Version__\x12\x18\n\x14PROTO3_REQUIRES_THIS\x10\x00\x12\x0f\n\x0bMAX_VERSION\x10\x01\x42%\n\x1c\x63om.snowflake.snowpark.proto\xe2?\x04H\x01X\x00\x62\x06proto3' + b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x15scalapb/scalapb.proto"$\n\tList_Expr\x12\x17\n\x04list\x18\x01 \x03(\x0b\x32\t.ast.Expr"4\n\x11List_SpColumnExpr\x12\x1f\n\x04list\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr"0\n\x0fList_SpDataType\x12\x1d\n\x04list\x18\x01 \x03(\x0b\x32\x0f.ast.SpDataType"\x1b\n\x0bList_String\x12\x0c\n\x04list\x18\x01 \x03(\t"3\n\rMap_Expr_Expr\x12"\n\x04list\x18\x01 \x03(\x0b\x32\x14.ast.Tuple_Expr_Expr"7\n\x0fMap_String_Expr\x12$\n\x04list\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr";\n\x11Map_String_String\x12&\n\x04list\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"?\n\x0fTuple_Expr_Expr\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"5\n\x10Tuple_Expr_Float\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\n\n\x02_2\x18\x02 \x01(\x01"6\n\x11Tuple_String_Expr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"2\n\x18Tuple_String_List_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x03(\t"F\n\x19Tuple_String_SpColumnExpr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1d\n\x02_2\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"@\n\x16Tuple_String_SpVariant\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"-\n\x13Tuple_String_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x01(\t"\xa4\x01\n\x08Language\x12*\n\rjava_language\x18\x01 \x01(\x0b\x32\x11.ast.JavaLanguageH\x00\x12.\n\x0fpython_language\x18\x02 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x03 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x42\x0e\n\x0csealed_value"/\n\x0ePythonLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version".\n\rScalaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"-\n\x0cJavaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"E\n\x07Version\x12\r\n\x05label\x18\x01 \x01(\t\x12\r\n\x05major\x18\x02 \x01(\x03\x12\r\n\x05minor\x18\x03 \x01(\x03\x12\r\n\x05patch\x18\x04 \x01(\x03"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"v\n\x06\x46nName\x12\'\n\x0c\x66n_name_flat\x18\x01 \x01(\x0b\x32\x0f.ast.FnNameFlatH\x00\x12\x33\n\x12\x66n_name_structured\x18\x02 \x01(\x0b\x32\x15.ast.FnNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1a\n\nFnNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t" \n\x10\x46nNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"\xc8\x01\n\x0fTableFnCallType\x12%\n\x1btable_fn_call_type__builtin\x18\x01 \x01(\x08H\x00\x12+\n!table_fn_call_type__call_table_fn\x18\x02 \x01(\x08H\x00\x12.\n$table_fn_call_type__session_table_fn\x18\x03 \x01(\x08H\x00\x12&\n\x1ctable_fn_call_type__table_fn\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xaa\x02\n\x18SpWindowRelativePosition\x12\x32\n(sp_window_relative_position__current_row\x18\x01 \x01(\x08H\x00\x12W\n%sp_window_relative_position__position\x18\x02 \x01(\x0b\x32&.ast.SpWindowRelativePosition_PositionH\x00\x12:\n0sp_window_relative_position__unbounded_following\x18\x03 \x01(\x08H\x00\x12:\n0sp_window_relative_position__unbounded_preceding\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant".\n!SpWindowRelativePosition_Position\x12\t\n\x01n\x18\x01 \x01(\x03"q\n\x0bPdIndexExpr\x12 \n\x08\x66lex_ord\x18\x01 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x02 \x01(\x0b\x32\x08.ast.KeyH\x00\x12\x17\n\x03ord\x18\x03 \x01(\x0b\x32\x08.ast.OrdH\x00\x42\x0e\n\x0csealed_value"\x1b\n\x03Ord\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1f\n\x07\x46lexOrd\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1b\n\x03Key\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\xb9\x02\n\x12PdProjectIndexExpr\x12/\n\x10\x62ool_filter_list\x18\x01 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x12)\n\rflex_ord_list\x18\x02 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12+\n\x0e\x66lex_ord_range\x18\x03 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12 \n\x08key_list\x18\x04 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12"\n\tkey_range\x18\x05 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x06 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12"\n\tord_range\x18\x07 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"Z\n\x0c\x46lexOrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"=\n\x08KeyRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr""\n\x07OrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr"&\n\x0b\x46lexOrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr""\n\x07KeyList\x12\x17\n\x04keys\x18\x01 \x01(\x0b\x32\t.ast.Expr"+\n\x0e\x42oolFilterList\x12\x19\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\t.ast.Expr"}\n\rSpFlattenMode\x12\x1f\n\x15sp_flatten_mode_array\x18\x01 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x02 \x01(\x08H\x00\x12 \n\x16sp_flatten_mode_object\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"P\n\x0eSpTableVariant\x12\x1a\n\x10sp_session_table\x18\x01 \x01(\x08H\x00\x12\x17\n\rsp_table_init\x18\x02 \x01(\x08H\x00\x42\t\n\x07variant"\xc0\x01\n\nSpSaveMode\x12\x1d\n\x13sp_save_mode_append\x18\x01 \x01(\x08H\x00\x12&\n\x1csp_save_mode_error_if_exists\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_save_mode_ignore\x18\x03 \x01(\x08H\x00\x12 \n\x16sp_save_mode_overwrite\x18\x04 \x01(\x08H\x00\x12\x1f\n\x15sp_save_mode_truncate\x18\x05 \x01(\x08H\x00\x42\t\n\x07variant"\xa6\x02\n\nSpJoinType\x12\x1c\n\x12sp_join_type__asof\x18\x01 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__cross\x18\x02 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x03 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__inner\x18\x04 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x05 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x06 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x07 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x08 \x01(\x08H\x00\x42\t\n\x07variant"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x03 \x01(\x08H\x00\x12#\n\x19sp_timestamp_time_zone_tz\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xa2\x06\n\nSpDataType\x12)\n\rsp_array_type\x18\x01 \x01(\x0b\x32\x10.ast.SpArrayTypeH\x00\x12\x18\n\x0esp_binary_type\x18\x02 \x01(\x08H\x00\x12\x19\n\x0fsp_boolean_type\x18\x03 \x01(\x08H\x00\x12\x16\n\x0csp_byte_type\x18\x04 \x01(\x08H\x00\x12\x37\n\x14sp_column_identifier\x18\x05 \x01(\x0b\x32\x17.ast.SpColumnIdentifierH\x00\x12\x16\n\x0csp_date_type\x18\x06 \x01(\x08H\x00\x12-\n\x0fsp_decimal_type\x18\x07 \x01(\x0b\x32\x12.ast.SpDecimalTypeH\x00\x12\x18\n\x0esp_double_type\x18\x08 \x01(\x08H\x00\x12\x17\n\rsp_float_type\x18\t \x01(\x08H\x00\x12\x1b\n\x11sp_geography_type\x18\n \x01(\x08H\x00\x12\x1a\n\x10sp_geometry_type\x18\x0b \x01(\x08H\x00\x12\x19\n\x0fsp_integer_type\x18\x0c \x01(\x08H\x00\x12\x16\n\x0csp_long_type\x18\r \x01(\x08H\x00\x12%\n\x0bsp_map_type\x18\x0e \x01(\x0b\x32\x0e.ast.SpMapTypeH\x00\x12\x16\n\x0csp_null_type\x18\x0f \x01(\x08H\x00\x12\x17\n\rsp_short_type\x18\x10 \x01(\x08H\x00\x12+\n\x0esp_string_type\x18\x11 \x01(\x0b\x32\x11.ast.SpStringTypeH\x00\x12-\n\x0fsp_struct_field\x18\x12 \x01(\x0b\x32\x12.ast.SpStructFieldH\x00\x12+\n\x0esp_struct_type\x18\x13 \x01(\x0b\x32\x11.ast.SpStructTypeH\x00\x12\x16\n\x0csp_time_type\x18\x14 \x01(\x08H\x00\x12\x31\n\x11sp_timestamp_type\x18\x15 \x01(\x0b\x32\x14.ast.SpTimestampTypeH\x00\x12\x19\n\x0fsp_variant_type\x18\x16 \x01(\x08H\x00\x12+\n\x0esp_vector_type\x18\x17 \x01(\x0b\x32\x11.ast.SpVectorTypeH\x00\x42\t\n\x07variant">\n\x0bSpArrayType\x12\x12\n\nstructured\x18\x01 \x01(\x08\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType""\n\x12SpColumnIdentifier\x12\x0c\n\x04name\x18\x01 \x01(\t"1\n\rSpDecimalType\x12\x11\n\tprecision\x18\x01 \x01(\x03\x12\r\n\x05scale\x18\x02 \x01(\x03"c\n\tSpMapType\x12\x1f\n\x06key_ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08\x12!\n\x08value_ty\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType";\n\x0cSpStringType\x12+\n\x06length\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"y\n\rSpStructField\x12\x32\n\x11\x63olumn_identifier\x18\x01 \x01(\x0b\x32\x17.ast.SpColumnIdentifier\x12"\n\tdata_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x10\n\x08nullable\x18\x03 \x01(\x08"F\n\x0cSpStructType\x12"\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x12.ast.SpStructField\x12\x12\n\nstructured\x18\x02 \x01(\x08">\n\x0fSpTimestampType\x12+\n\ttime_zone\x18\x01 \x01(\x0b\x32\x18.ast.SpTimestampTimeZone">\n\x0cSpVectorType\x12\x11\n\tdimension\x18\x01 \x01(\x03\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType"\xc2\x05\n\tSpVariant\x12<\n\x17sp_variant__big_decimal\x18\x01 \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12\x34\n\x13sp_variant__big_int\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12/\n\x10sp_variant__bool\x18\x03 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x31\n\x11sp_variant__bytes\x18\x04 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12/\n\x10sp_variant__date\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12\x33\n\x12sp_variant__double\x18\x06 \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\x00\x12\x31\n\x11sp_variant__float\x18\x07 \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12-\n\x0fsp_variant__int\x18\x08 \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12/\n\x10sp_variant__list\x18\t \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x33\n\x12sp_variant__object\x18\n \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12\x33\n\x12sp_variant__string\x18\x0b \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__time\x18\x0c \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x39\n\x15sp_variant__timestamp\x18\r \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x42\x0e\n\x0csealed_value"7\n\x10SpVariant_Object\x12#\n\x01v\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"3\n\x0eSpVariant_List\x12!\n\x01v\x18\x01 \x03(\x0b\x32\x16.ast.Map_String_String" \n\x13SpVariant_Timestamp\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Date\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Time\x12\t\n\x01v\x18\x01 \x01(\x04"\x1c\n\x0fSpVariant_Bytes\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1d\n\x10SpVariant_String\x12\t\n\x01v\x18\x01 \x01(\t"\x1b\n\x0eSpVariant_Bool\x12\t\n\x01v\x18\x01 \x01(\x08"\x1d\n\x10SpVariant_BigInt\x12\t\n\x01v\x18\x01 \x01(\x0c"!\n\x14SpVariant_BigDecimal\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1a\n\rSpVariant_Int\x12\t\n\x01v\x18\x01 \x01(\x03"\x1c\n\x0fSpVariant_Float\x12\t\n\x01v\x18\x01 \x01(\x04"\x1d\n\x10SpVariant_Double\x12\t\n\x01v\x18\x01 \x01(\x04"\x91\x01\n\x0bSpTableName\x12\x32\n\x12sp_table_name_flat\x18\x01 \x01(\x0b\x32\x14.ast.SpTableNameFlatH\x00\x12>\n\x18sp_table_name_structured\x18\x02 \x01(\x0b\x32\x1a.ast.SpTableNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1f\n\x0fSpTableNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t"%\n\x15SpTableNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"=\n\x15StagedPandasDataframe\x12$\n\ntemp_table\x18\x01 \x01(\x0b\x32\x10.ast.SpTableName"\xe1\x01\n\x0fSpDataframeData\x12<\n\x17sp_dataframe_data__list\x18\x01 \x01(\x0b\x32\x19.ast.SpDataframeData_ListH\x00\x12@\n\x19sp_dataframe_data__pandas\x18\x02 \x01(\x0b\x32\x1b.ast.SpDataframeData_PandasH\x00\x12>\n\x18sp_dataframe_data__tuple\x18\x03 \x01(\x0b\x32\x1a.ast.SpDataframeData_TupleH\x00\x42\x0e\n\x0csealed_value"-\n\x14SpDataframeData_List\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr".\n\x15SpDataframeData_Tuple\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr"?\n\x16SpDataframeData_Pandas\x12%\n\x01v\x18\x01 \x01(\x0b\x32\x1a.ast.StagedPandasDataframe"\xab\x01\n\x11SpDataframeSchema\x12@\n\x19sp_dataframe_schema__list\x18\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSchema_ListH\x00\x12\x44\n\x1bsp_dataframe_schema__struct\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeSchema_StructH\x00\x42\x0e\n\x0csealed_value"$\n\x16SpDataframeSchema_List\x12\n\n\x02vs\x18\x01 \x03(\t"8\n\x18SpDataframeSchema_Struct\x12\x1c\n\x01v\x18\x01 \x01(\x0b\x32\x11.ast.SpStructType"&\n\nSpCallable\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t"\x98\x01\n\x0cSpPivotValue\x12@\n\x19sp_pivot_value__dataframe\x18\x01 \x01(\x0b\x32\x1b.ast.SpPivotValue_DataframeH\x00\x12\x36\n\x14sp_pivot_value__expr\x18\x02 \x01(\x0b\x32\x16.ast.SpPivotValue_ExprH\x00\x42\x0e\n\x0csealed_value")\n\x11SpPivotValue_Expr\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"8\n\x16SpPivotValue_Dataframe\x12\x1e\n\x01v\x18\x01 \x01(\x0b\x32\x13.ast.SpDataframeRef"k\n\x0bSrcPosition\x12\x12\n\nend_column\x18\x01 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x02 \x01(\x03\x12\x0c\n\x04\x66ile\x18\x03 \x01(\t\x12\x14\n\x0cstart_column\x18\x04 \x01(\x03\x12\x12\n\nstart_line\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"\x8c\x01\n\x07Request\x12\x17\n\x04\x62ody\x18\x01 \x03(\x0b\x32\t.ast.Stmt\x12\x1a\n\x12\x63lient_ast_version\x18\x02 \x01(\x03\x12&\n\x0f\x63lient_language\x18\x03 \x01(\x0b\x32\r.ast.Language\x12$\n\x0e\x63lient_version\x18\x04 \x01(\x0b\x32\x0c.ast.Version"%\n\x08Response\x12\x19\n\x04\x62ody\x18\x01 \x03(\x0b\x32\x0b.ast.Result"\xde\x05\n\x05\x43onst\x12-\n\x0f\x62ig_decimal_val\x18\x01 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x02 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x03 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x04 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x05 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x06 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x07 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\x08 \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\t \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\n \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0b \x01(\x0b\x32\x0c.ast.NullValH\x00\x12-\n\x0fpython_date_val\x18\x0c \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\r \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x0e \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x0f \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x10 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x11 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x12 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"(\n\x07NoneVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"(\n\x07NullVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"3\n\x07\x42oolVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x08"4\n\x08Int32Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"4\n\x08Int64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"6\n\nFloat64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x01"5\n\tBigIntVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"U\n\rBigDecimalVal\x12\r\n\x05scale\x18\x01 \x01(\x03\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x03 \x01(\x0c"5\n\tStringVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\t"5\n\tBinaryVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"8\n\x0cTimestampVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07\x44\x61teVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07TimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"\xc1\x01\n\x12PythonTimestampVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x03 \x01(\x03\x12\x0e\n\x06minute\x18\x04 \x01(\x03\x12\r\n\x05month\x18\x05 \x01(\x03\x12\x0e\n\x06second\x18\x06 \x01(\x03\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x08 \x01(\x0b\x32\x13.ast.PythonTimeZone\x12\x0c\n\x04year\x18\t \x01(\x03"X\n\rPythonDateVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\r\n\x05month\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x0c\n\x04hour\x18\x01 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x17\n\x04\x62ody\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"Q\n\rSpDatatypeVal\x12!\n\x08\x64\x61tatype\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x06IfExpr\x12\x17\n\x04\x63ond\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition">\n\x07SomeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Expr"@\n\x08TupleVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"?\n\x07ListVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"F\n\tSeqMapVal\x12\x1a\n\x03kvs\x18\x01 \x03(\x0b\x32\r.ast.TupleVal\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\tApplyExpr\x12\x1a\n\x02\x66n\x18\x01 \x01(\x0b\x32\x0e.ast.FnRefExpr\x12*\n\nnamed_args\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xfd\x01\n\tFnRefExpr\x12$\n\nbuiltin_fn\x18\x01 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12/\n\x10session_table_fn\x18\x02 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12!\n\tsp_fn_ref\x18\x03 \x01(\x0b\x32\x0c.ast.SpFnRefH\x00\x12\x30\n\x10stored_procedure\x18\x04 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12 \n\x08table_fn\x18\x05 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12\x17\n\x03udf\x18\x06 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"[\n\x07SpFnRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"E\n\tBuiltinFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xb3\x01\n\x0fStoredProcedure\x12\x34\n\x10log_on_exception\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x30\n\x10statement_params\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"\xad\x05\n\x03Udf\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12$\n\x1c\x65xternal_access_integrations\x18\x02 \x03(\t\x12\x1d\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x0f.ast.SpCallable\x12\x15\n\rif_not_exists\x18\x04 \x01(\x08\x12\x11\n\timmutable\x18\x05 \x01(\x08\x12!\n\x07imports\x18\x06 \x03(\x0b\x32\x10.ast.SpTableName\x12)\n\x0binput_types\x18\x07 \x01(\x0b\x32\x14.ast.List_SpDataType\x12\x14\n\x0cis_permanent\x18\x08 \x01(\x08\x12&\n\x06kwargs\x18\t \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x33\n\x0emax_batch_size\x18\n \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x19\n\x04name\x18\x0b \x01(\x0b\x32\x0b.ast.FnName\x12\x10\n\x08packages\x18\x0c \x03(\t\x12\x10\n\x08parallel\x18\r \x01(\x03\x12\x0f\n\x07replace\x18\x0e \x01(\x08\x12$\n\x0breturn_type\x18\x0f \x01(\x0b\x32\x0f.ast.SpDataType\x12)\n\x07secrets\x18\x10 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06secure\x18\x11 \x01(\x08\x12\x1b\n\x13source_code_display\x18\x12 \x01(\x08\x12\x1d\n\x03src\x18\x13 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0estage_location\x18\x14 \x01(\t\x12\x32\n\x10statement_params\x18\x15 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06strict\x18\x16 \x01(\x08"J\n\x0eSessionTableFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x07TableFn\x12\'\n\tcall_type\x18\x01 \x01(\x0b\x32\x14.ast.TableFnCallType\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"F\n\x07UnaryOp\x12\x17\n\x03neg\x18\x01 \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03not\x18\x02 \x01(\x0b\x32\x08.ast.NotH\x00\x42\t\n\x07variant"\xc6\x03\n\x05\x42inOp\x12\x17\n\x03\x61\x64\x64\x18\x01 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x02 \x01(\x0b\x32\x08.ast.AndH\x00\x12\x1e\n\x07\x62it_and\x18\x03 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x04 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x05 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12\x17\n\x03\x64iv\x18\x06 \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x07 \x01(\x0b\x32\x07.ast.EqH\x00\x12\x17\n\x03geq\x18\x08 \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18\t \x01(\x0b\x32\x07.ast.GtH\x00\x12\x17\n\x03leq\x18\n \x01(\x0b\x32\x08.ast.LeqH\x00\x12\x15\n\x02lt\x18\x0b \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18\x0c \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18\r \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neq\x18\x0e \x01(\x0b\x32\x08.ast.NeqH\x00\x12\x15\n\x02or\x18\x0f \x01(\x0b\x32\x07.ast.OrH\x00\x12\x17\n\x03pow\x18\x10 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x17\n\x03sub\x18\x11 \x01(\x0b\x32\x08.ast.SubH\x00\x42\t\n\x07variant"@\n\x03Not\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41nd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Or\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02\x45q\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Neq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Lt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Leq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Gt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Geq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"@\n\x03Neg\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41\x64\x64\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Sub\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mul\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x44iv\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mod\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Pow\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itAnd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x05\x42itOr\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itXor\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x08RangeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05start\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xe3\x02\n\x10SpWindowSpecExpr\x12\x36\n\x14sp_window_spec_empty\x18\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12;\n\x17sp_window_spec_order_by\x18\x02 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x43\n\x1bsp_window_spec_partition_by\x18\x03 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x45\n\x1csp_window_spec_range_between\x18\x04 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x43\n\x1bsp_window_spec_rows_between\x18\x05 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x42\t\n\x07variant"V\n\x11SpWindowSpecEmpty\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x02 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"q\n\x13SpWindowSpecOrderBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"u\n\x17SpWindowSpecPartitionBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb7\x01\n\x18SpWindowSpecRangeBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb6\x01\n\x17SpWindowSpecRowsBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xcfP\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12+\n\x11trait_fn_ref_expr\x18\x03 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x05 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\x07 \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x08 \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\t \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\n \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12/\n\x13trait_sp_write_file\x18\x0b \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x0c \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\r \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x0e \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x0f \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x10 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x11 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x12 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x13 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x14 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x15 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x16 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x17 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x18 \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x19 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1a \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1b \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1c \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x1d \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18\x1e \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18\x1f \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/ \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x30 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x31 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x32 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x33 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x34 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x35 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x36 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x37 \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x38 \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18\x39 \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18: \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18; \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18< \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18= \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18> \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\x34\n\x13sp_column_case_when\x18\x43 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\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\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_alias\x18[ \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\\ \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18] \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18^ \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18_ \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18` \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x61 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18\x62 \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18\x63 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18\x64 \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18\x65 \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18\x66 \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18g \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18h \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18i \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18j \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18k \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18l \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18m \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18n \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18o \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18p \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18q \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18r \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18s \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18t \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18u \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18v \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18w \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18x \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18y \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18z \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18{ \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18| \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18} \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18~ \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x7f \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x80\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x81\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x82\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x83\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x84\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x85\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x86\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x87\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x88\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x89\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x8a\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x8b\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x8c\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x8d\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x8e\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x8f\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x90\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x91\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x92\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x93\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x94\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x95\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x96\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x97\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x98\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x99\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x9a\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x9b\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\x9c\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\x9d\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\x9e\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\x9f\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa0\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12"\n\tsp_fn_ref\x18\xa1\x01 \x01(\x0b\x32\x0c.ast.SpFnRefH\x00\x12)\n\x0csp_generator\x18\xa2\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa3\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xa4\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xa5\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xa6\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xa7\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xa8\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xa9\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xaa\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xab\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xac\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12j\n/sp_relational_grouped_dataframe_apply_in_pandas\x18\xad\x01 \x01(\x0b\x32..ast.SpRelationalGroupedDataframeApplyInPandasH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xae\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_pivot\x18\xaf\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframePivotH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xb0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12\x1d\n\x06sp_row\x18\xb1\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xb2\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xb3\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xb4\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xb5\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xb6\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xb7\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xb8\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xb9\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xba\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xbb\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xbc\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xbd\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xbe\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xbf\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xc0\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xc1\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xc2\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xc3\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"@\n\x03Ref\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"W\n\x08\x43\x61stExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03typ\x18\x02 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x95\x01\n\x0bPdDataframe\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x03 \x01(\x0b\x32\t.ast.Type\x12\x18\n\x05index\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x01\n\x08PdDropNa\x12\x17\n\x04\x61xis\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06subset\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06thresh\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x12PdDataframeSetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x0fPdDataframeILoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x06PdRepr\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\x12\x13\n\x0bmax_columns\x18\x02 \x01(\x03\x12\x10\n\x08max_rows\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x13\n\x01v\x18\x05 \x01(\x0b\x32\x08.ast.Ref"u\n\x0cPdReprResult\x12\x13\n\x0bnum_columns\x18\x01 \x01(\x03\x12\x18\n\x10num_head_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x10\n\x08num_rows\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c"\x9e\x01\n\x06Result\x12!\n\x0btrait_error\x18\x01 \x01(\x0b\x32\n.ast.ErrorH\x00\x12\x1e\n\x07\x65val_ok\x18\x02 \x01(\x0b\x32\x0b.ast.EvalOkH\x00\x12\x46\n\x1csession_reset_required_error\x18\x03 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"\xb3\x06\n\nEvalResult\x12!\n\x0btrait_const\x18\x01 \x01(\x0b\x32\n.ast.ConstH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x02 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x03 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x04 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x05 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x06 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x07 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x08 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\t \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\n \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\x0b \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0c \x01(\x0b\x32\x0c.ast.NullValH\x00\x12+\n\x0epd_repr_result\x18\r \x01(\x0b\x32\x11.ast.PdReprResultH\x00\x12-\n\x0fpython_date_val\x18\x0e \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x0f \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x10 \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x11 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x12 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x13 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x14 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"P\n\x06\x45valOk\x12\x1d\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x0f.ast.EvalResult\x12\x0b\n\x03uid\x18\x02 \x01(\x03\x12\x1a\n\x06var_id\x18\x03 \x01(\x0b\x32\n.ast.VarId"Z\n\x05\x45rror\x12\x46\n\x1csession_reset_required_error\x18\x01 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"D\n\x19SessionResetRequiredError\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xcc\x02\n\x0cSpColumnExpr\x12\x34\n\x13sp_column_case_when\x18\x01 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12\x36\n\x14sp_column_equal_null\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x03 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x04 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x05 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"m\n\x0fSpColumnSqlExpr\x12.\n\x08\x64\x66_alias\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\nSpCaseExpr\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr"Q\n\x10SpColumnCaseWhen\x12\x1e\n\x05\x63\x61ses\x18\x01 \x03(\x0b\x32\x0f.ast.SpCaseExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x91\n\n\nSpColumnFn\x12-\n\x0fsp_column_alias\x18\x01 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x03 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x04 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x05 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x06 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x07 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x08 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12<\n\x17sp_column_in__dataframe\x18\t \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18\n \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18\x0b \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18\x0c \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18\r \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18\x0e \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12>\n\x18sp_column_string_collate\x18\x0f \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18\x10 \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18\x11 \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18\x12 \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18\x13 \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18\x14 \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\x15 \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18\x16 \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x17 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\\\n\x14SpColumnApply_String\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x0bSpColumnAsc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x0fSpColumnBetween\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"I\n\x10SpColumnEqualNan\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x11SpColumnEqualNull\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"o\n\x14SpColumnIn_Dataframe\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x0eSpColumnIn_Seq\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"G\n\x0eSpColumnIsNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x0cSpColumnName\x12\r\n\x05\x61lias\x18\x01 \x01(\t\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x0cSpColumnOver\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"l\n\x13SpColumnWithinGroup\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x04\x63ols\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"g\n\x12SpColumnStringLike\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x14SpColumnStringRegexp\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\nparameters\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x18SpColumnStringStartsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"j\n\x16SpColumnStringEndsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x15SpColumnStringCollate\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"k\n\x16SpColumnStringContains\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xb2#\n\x0fSpDataframeExpr\x12\x35\n\x13sp_create_dataframe\x18\x01 \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x02 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x03 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x04 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x05 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x06 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x07 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x08 \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x37\n\x14sp_dataframe_collect\x18\t \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x33\n\x12sp_dataframe_count\x18\n \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x0b \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x39\n\x15sp_dataframe_describe\x18\x0c \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\r \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18\x0e \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x0f \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18\x10 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x11 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x12 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x13 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12;\n\x16sp_dataframe_intersect\x18\x14 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x15 \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x16 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x17 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x18 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x19 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x1a \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x1b \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18\x1c \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18\x1d \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18\x1e \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18\x1f \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18! \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18" \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x35\n\x13sp_dataframe_sample\x18# \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18$ \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x42\n\x1asp_dataframe_select__exprs\x18% \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x31\n\x11sp_dataframe_show\x18& \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x31\n\x11sp_dataframe_sort\x18\' \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12O\n!sp_dataframe_stat_approx_quantile\x18( \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12:\n\x16sp_dataframe_stat_corr\x18) \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x38\n\x15sp_dataframe_stat_cov\x18* \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x43\n\x1bsp_dataframe_stat_cross_tab\x18+ \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x43\n\x1bsp_dataframe_stat_sample_by\x18, \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\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\x30 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18\x31 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18\x32 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18\x33 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12M\n sp_dataframe_with_column_renamed\x18\x34 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12@\n\x19sp_dataframe_with_columns\x18\x35 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_dataframe_write\x18\x36 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12$\n\nsp_flatten\x18\x37 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12(\n\x0csp_generator\x18\x38 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18\x39 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18: \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18; \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18< \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18= \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18> \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18? \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18@ \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12S\n#sp_relational_grouped_dataframe_agg\x18\x41 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12i\n/sp_relational_grouped_dataframe_apply_in_pandas\x18\x42 \x01(\x0b\x32..ast.SpRelationalGroupedDataframeApplyInPandasH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18\x43 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_pivot\x18\x44 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframePivotH\x00\x12\x1c\n\x06sp_sql\x18\x45 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18\x46 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18G \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18H \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12-\n\x0fsp_write_pandas\x18I \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"H\n\x0fSpDataframeShow\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8c\x01\n\x10SpDataframeCount\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xd1\x01\n\x12SpDataframeCollect\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x0e\x63\x61se_sensitive\x18\x02 \x01(\x08\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x18\n\x10log_on_exception\x18\x04 \x01(\x08\x12\x0f\n\x07no_wait\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String"~\n\x11SpCreateDataframe\x12"\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06schema\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeSchema\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x80\x03\n\rSpWritePandas\x12\x19\n\x11\x61uto_create_table\x18\x01 \x01(\x08\x12/\n\nchunk_size\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x13\n\x0b\x63ompression\x18\x03 \x01(\t\x12\x19\n\x11\x63reate_temp_table\x18\x04 \x01(\x08\x12 \n\x02\x64\x66\x18\x05 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06kwargs\x18\x06 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x10\n\x08on_error\x18\x07 \x01(\t\x12\x11\n\toverwrite\x18\x08 \x01(\x08\x12\x10\n\x08parallel\x18\t \x01(\x03\x12\x19\n\x11quote_identifiers\x18\n \x01(\x08\x12\x1d\n\x03src\x18\x0b \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\ntable_name\x18\x0c \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\r \x01(\t"\xb4\x01\n\tSpFlatten\x12\x18\n\x05input\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x02 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x03 \x01(\x08\x12*\n\x04path\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x0bSpGenerator\x12\x1a\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x12time_limit_seconds\x18\x04 \x01(\x03\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\x8c\x01\n\x07SpRange\x12(\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05start\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\r\n\x05query\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"s\n\x11SpStoredProcedure\x12\x1c\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x91\x01\n\x07SpTable\x12!\n\x19is_temp_table_for_cleanup\x18\x01 \x01(\x08\x12\x1e\n\x04name\x18\x02 \x01(\x0b\x32\x10.ast.SpTableName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\x07variant\x18\x04 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x15min_non_nulls_per_row\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12+\n\x06thresh\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"\xb9\x01\n\x11SpDataframeNaFill\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12\x18\n\x05value\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x05 \x01(\x0b\x32\x14.ast.Map_String_Expr"\xae\x02\n\x14SpDataframeNaReplace\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x02 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12\'\n\x0fto_replace_list\x18\x05 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x06 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x08 \x01(\x0b\x32\x0e.ast.List_Expr"r\n\x0eSpDataframeAgg\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x05\x65xprs\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\x10SpDataframeAlias\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"e\n\x10SpDataframeApply\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\x0eSpDataframeCol\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xd9\x01\n\x14SpDataframeCrossJoin\x12!\n\x03lhs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeCube\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"v\n\x13SpDataframeDescribe\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x13SpDataframeDistinct\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeDrop\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x19SpDataframeDropDuplicates\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x11SpDataframeExcept\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x11SpDataframeFilter\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xdf\x01\n\x12SpDataframeFlatten\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05input\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x03 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x04 \x01(\x08\x12*\n\x04path\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x10SpDataframeFirst\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"u\n\x12SpDataframeGroupBy\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x14SpDataframeIntersect\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x02\n\x0fSpDataframeJoin\x12\x1c\n\tjoin_expr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12"\n\x0fmatch_condition\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12!\n\x03rhs\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1f\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12(\n\njoin_exprs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\'\n\rusing_columns\x18\x05 \x01(\x0b\x32\x10.ast.List_String\x12\x10\n\x08variadic\x18\x06 \x01(\x08"n\n\x10SpDataframeLimit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x02 \x01(\x03\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa1\x01\n\x16SpDataframeNaturalJoin\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x17SpDataframePivot_Column\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc9\x01\n\x16SpDataframeRandomSplit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12)\n\x04seed\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0f\n\x07weights\x18\x05 \x03(\x01"\xa8\x01\n\x11SpDataframeRename\x12 \n\rcol_or_mapper\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x30\n\nnew_column\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"t\n\x11SpDataframeRollup\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x01\n\x11SpDataframeSample\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\x03num\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x14probability_fraction\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"{\n\x17SpDataframeSelect_Exprs\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x65xprs\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xa0\x01\n\x0fSpDataframeSort\x12\x1c\n\tascending\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x15\n\rcols_variadic\x18\x03 \x01(\x08\x12 \n\x02\x64\x66\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"x\n\x10SpDataframeUnion\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x13SpDataframeUnionAll\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x81\x01\n\x19SpDataframeUnionAllByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"~\n\x16SpDataframeUnionByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x10SpDataframeWhere\x12$\n\tcondition\x18\x01 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x82\x01\n\x15SpDataframeWithColumn\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x10\n\x08\x63ol_name\x18\x02 \x01(\t\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x1cSpDataframeWithColumnRenamed\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x16SpDataframeWithColumns\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x04 \x03(\x0b\x32\t.ast.Expr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x02 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"O\n\x0eSpGroupingSets\x12\x1e\n\x04sets\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xe4\x01\n\x1dSpDataframeAnalyticsMovingAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x10\n\x08order_by\x18\x05 \x03(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x0cwindow_sizes\x18\x07 \x03(\x03"\xe6\x01\n!SpDataframeAnalyticsCumulativeAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x12\n\nis_forward\x18\x05 \x01(\x08\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n\x1eSpDataframeAnalyticsComputeLag\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x0c\n\x04lags\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\x1fSpDataframeAnalyticsComputeLead\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\r\n\x05leads\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xfd\x01\n!SpDataframeAnalyticsTimeSeriesAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x18\n\x10sliding_interval\x18\x05 \x01(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08time_col\x18\x07 \x01(\t\x12\x0f\n\x07windows\x18\x08 \x03(\t"\xfd\x02\n\x11SpDataframeReader\x12>\n\x18sp_dataframe_reader_init\x18\x01 \x01(\x0b\x32\x1a.ast.SpDataframeReaderInitH\x00\x12\x42\n\x1asp_dataframe_reader_option\x18\x02 \x01(\x0b\x32\x1c.ast.SpDataframeReaderOptionH\x00\x12\x44\n\x1bsp_dataframe_reader_options\x18\x03 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12\x42\n\x1asp_dataframe_reader_schema\x18\x04 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12O\n!sp_dataframe_reader_with_metadata\x18\x05 \x01(\x0b\x32".ast.SpDataframeReaderWithMetadataH\x00\x42\t\n\x07variant"6\n\x15SpDataframeReaderInit\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x17SpDataframeReaderOption\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05value\x18\x04 \x01(\x0b\x32\t.ast.Expr"\x8a\x01\n\x18SpDataframeReaderOptions\x12\'\n\x07\x63onfigs\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x83\x01\n\x17SpDataframeReaderSchema\x12&\n\x06reader\x18\x01 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12!\n\x06schema\x18\x02 \x01(\x0b\x32\x11.ast.SpStructType\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x92\x01\n\x1dSpDataframeReaderWithMetadata\x12*\n\x10metadata_columns\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"t\n\x0bSpReadTable\x12\x1e\n\x04name\x18\x01 \x01(\x0b\x32\x10.ast.SpTableName\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"`\n\tSpReadCsv\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\nSpReadJson\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\nSpReadAvro\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"`\n\tSpReadOrc\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"d\n\rSpReadParquet\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"`\n\tSpReadXml\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x06reader\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeReader\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xe1\x03\n\x11SpDataframeWriter\x12J\n!trait_sp_dataframe_writer_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x02 \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12/\n\x13trait_sp_write_file\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12\x43\n\x1bsp_write_copy_into_location\x18\x04 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x05 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x06 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x07 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x08 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x42\t\n\x07variant"7\n\x19SpDataframeWriterSaveMode\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x18SpDataframeWriterOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"w\n\x10SpDataframeWrite\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tsave_mode\x18\x02 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xe2\x01\n\x0bSpWriteFile\x12\x43\n\x1bsp_write_copy_into_location\x18\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x02 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x04 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x42\t\n\x07variant"\xae\x02\n\nSpWriteCsv\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xaf\x02\n\x0bSpWriteJson\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x02\n\x0eSpWriteParquet\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xea\x02\n\x0cSpWriteTable\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\'\n\x0f\x63lustering_keys\x18\x02 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x14\n\x0c\x63olumn_order\x18\x03 \x01(\t\x12-\n\x07\x63omment\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x19\n\x11\x63reate_temp_table\x18\x05 \x01(\x08\x12\x16\n\x02id\x18\x06 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04mode\x18\x07 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String\x12$\n\ntable_name\x18\n \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\x0b \x01(\t"\xab\x03\n\x17SpWriteCopyIntoLocation\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x36\n\x10\x66ile_format_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x66ile_format_type\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x13\x66ormat_type_options\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x06 \x01(\x08\x12\x16\n\x02id\x18\x07 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x08 \x01(\t\x12\x1f\n\x0cpartition_by\x18\t \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\n \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x0b \x03(\x0b\x32\x18.ast.Tuple_String_String"\xe3\x01\n\x1eSpDataframeCreateOrReplaceView\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07is_temp\x18\x03 \x01(\x08\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xfa\x01\n&SpDataframeCreateOrReplaceDynamicTable\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03lag\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x11\n\twarehouse\x18\x07 \x01(\t"\xb7\x03\n\x18SpDataframeCopyIntoTable\x12,\n\x0c\x63opy_options\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x66iles\x18\x03 \x03(\t\x12\x33\n\x13\x66ormat_type_options\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12-\n\x07pattern\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x12\n\ntable_name\x18\x08 \x03(\t\x12\x16\n\x0etarget_columns\x18\t \x03(\t\x12"\n\x0ftransformations\x18\n \x03(\x0b\x32\t.ast.Expr\x12\x35\n\x0fvalidation_mode\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValue"\x8d\x01\n\x16SpDataframeCacheResult\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb7\x01\n\x1dSpDataframeStatApproxQuantile\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x12\n\npercentile\x18\x03 \x03(\x01\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x01\n\x13SpDataframeStatCorr\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb1\x01\n\x12SpDataframeStatCov\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb6\x01\n\x17SpDataframeStatCrossTab\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x9c\x01\n\x17SpDataframeStatSampleBy\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\tfractions\x18\x03 \x03(\x0b\x32\x15.ast.Tuple_Expr_Float\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa8\x06\n SpRelationalGroupedDataframeExpr\x12\x31\n\x11sp_dataframe_cube\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x02 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x03 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x05 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x07 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x35\n\x13sp_dataframe_rollup\x18\x08 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\t \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12S\n#sp_relational_grouped_dataframe_ref\x18\x0b \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x42\t\n\x07variant"X\n\x1fSpRelationalGroupedDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x9c\x01\n\x1fSpRelationalGroupedDataframeAgg\x12\x1f\n\x05\x65xprs\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xb1\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x10\n\x08\x61gg_name\x18\x01 \x01(\t\x12\x1e\n\x04\x63ols\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xf6\x01\n)SpRelationalGroupedDataframeApplyInPandas\x12\x1d\n\x04\x66unc\x18\x01 \x01(\x0b\x32\x0f.ast.SpCallable\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12&\n\x06kwargs\x18\x03 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12(\n\routput_schema\x18\x04 \x01(\x0b\x32\x11.ast.SpStructType\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\xe2\x01\n!SpRelationalGroupedDataframePivot\x12"\n\x0f\x64\x65\x66\x61ult_on_null\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1c\n\tpivot_col\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12!\n\x06values\x18\x05 \x01(\x0b\x32\x11.ast.SpPivotValue"^\n\x05SpRow\x12\x1f\n\x05names\x18\x01 \x01(\x0b\x32\x10.ast.List_String\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x03 \x03(\x0b\x32\t.ast.Expr"8\n\x0b\x45xprArgList\x12\x17\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x02 \x01(\x08":\n\x0fSpDataframeType\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\x12\x16\n\x03tys\x18\x02 \x03(\x0b\x32\t.ast.Type"F\n\x16SpGroupedDataframeType\x12\x15\n\rinner_columns\x18\x01 \x03(\t\x12\x15\n\router_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xcfW\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x03 \x01(\x0b\x32\t.ast.ExprH\x00\x12+\n\x11trait_fn_ref_expr\x18\x04 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x05 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x06 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x07 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12;\n\x19trait_sp_dataframe_reader\x18\x08 \x01(\x0b\x32\x16.ast.SpDataframeReaderH\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\x19trait_sp_window_spec_expr\x18\r \x01(\x0b\x32\x15.ast.SpWindowSpecExprH\x00\x12/\n\x13trait_sp_write_file\x18\x0e \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x0f \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x10 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x11 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x12 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x13 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x14 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x15 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x16 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x17 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x18 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x19 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1a \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1b \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1c \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1d \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1e \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1f \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18 \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18! \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18" \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18# \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18$ \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18% \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18& \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18\' \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18( \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18) \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18* \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18+ \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18, \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18- \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18. \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18/ \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x30 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x31 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x32 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x33 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x34 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x35 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x36 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x37 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x38 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x39 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18: \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18; \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18< \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18= \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18> \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18? \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18@ \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12\'\n\x0csp_case_expr\x18\x41 \x01(\x0b\x32\x0f.ast.SpCaseExprH\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\x34\n\x13sp_column_case_when\x18G \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\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>\n\x18sp_column_string_collate\x18T \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18U \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18V \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18W \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18X \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18Y \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18Z \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18[ \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\\ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\x35\n\x13sp_create_dataframe\x18] \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18^ \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18_ \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18` \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x61 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x62 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x63 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x64 \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x65 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18\x66 \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18g \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18h \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18i \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18j \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18k \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18l \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18m \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18n \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18o \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18p \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18q \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18r \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18s \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18t \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18u \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18v \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18w \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18x \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18y \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18z \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18{ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18| \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18} \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18~ \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x7f \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x80\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x81\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x83\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x84\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x85\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x86\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x87\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x88\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12?\n\x18sp_dataframe_reader_init\x18\x8a\x01 \x01(\x0b\x32\x1a.ast.SpDataframeReaderInitH\x00\x12\x43\n\x1asp_dataframe_reader_option\x18\x8b\x01 \x01(\x0b\x32\x1c.ast.SpDataframeReaderOptionH\x00\x12\x45\n\x1bsp_dataframe_reader_options\x18\x8c\x01 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12\x43\n\x1asp_dataframe_reader_schema\x18\x8d\x01 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12P\n!sp_dataframe_reader_with_metadata\x18\x8e\x01 \x01(\x0b\x32".ast.SpDataframeReaderWithMetadataH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8f\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x90\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x91\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x92\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x93\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x94\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x95\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x96\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x97\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x98\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x99\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x9a\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x9b\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x9c\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x9d\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x9e\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9f\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\xa0\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\xa1\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\xa2\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\xa3\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\xa4\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa5\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa6\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa7\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\xa8\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa9\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12"\n\tsp_fn_ref\x18\xaa\x01 \x01(\x0b\x32\x0c.ast.SpFnRefH\x00\x12)\n\x0csp_generator\x18\xab\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xac\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xad\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xae\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xaf\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xb0\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xb1\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xb2\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xb3\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xb4\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xb5\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12j\n/sp_relational_grouped_dataframe_apply_in_pandas\x18\xb6\x01 \x01(\x0b\x32..ast.SpRelationalGroupedDataframeApplyInPandasH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb7\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_pivot\x18\xb8\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframePivotH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xb9\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12\x1d\n\x06sp_row\x18\xba\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xbb\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xbc\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xbd\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xbe\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x37\n\x14sp_window_spec_empty\x18\xbf\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12<\n\x17sp_window_spec_order_by\x18\xc0\x01 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x44\n\x1bsp_window_spec_partition_by\x18\xc1\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x46\n\x1csp_window_spec_range_between\x18\xc2\x01 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x44\n\x1bsp_window_spec_rows_between\x18\xc3\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc4\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xc5\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xc6\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xc7\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xc8\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xc9\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xca\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xcb\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xcc\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xcd\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xce\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xcf\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xd0\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xd1\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"K\n\x04Stmt\x12\x1d\n\x06\x61ssign\x18\x01 \x01(\x0b\x32\x0b.ast.AssignH\x00\x12\x19\n\x04\x65val\x18\x02 \x01(\x0b\x32\t.ast.EvalH\x00\x42\t\n\x07variant"x\n\x06\x41ssign\x12\x17\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03uid\x18\x03 \x01(\x03\x12\x1a\n\x06var_id\x18\x04 \x01(\x0b\x32\n.ast.VarId"/\n\x04\x45val\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xc0\x07\n\x04Type\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12,\n\x11trait_scalar_type\x18\x02 \x01(\x0b\x32\x0f.ast.ScalarTypeH\x00\x12 \n\x08\x61ny_type\x18\x03 \x01(\x0b\x32\x0c.ast.AnyTypeH\x00\x12"\n\tbool_type\x18\x04 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x05 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12\x1e\n\x07\x66n_type\x18\x06 \x01(\x0b\x32\x0b.ast.FnTypeH\x00\x12$\n\nint32_type\x18\x07 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x08 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12"\n\tlist_type\x18\t \x01(\x0b\x32\r.ast.ListTypeH\x00\x12 \n\x08map_type\x18\n \x01(\x0b\x32\x0c.ast.MapTypeH\x00\x12(\n\x0cnothing_type\x18\x0b \x01(\x0b\x32\x10.ast.NothingTypeH\x00\x12&\n\x0bnumber_type\x18\x0c \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12&\n\x0boption_type\x18\r \x01(\x0b\x32\x0f.ast.OptionTypeH\x00\x12\'\n\x0cpd_repr_type\x18\x0e \x01(\x0b\x32\x0f.ast.PdReprTypeH\x00\x12.\n\x10sp_col_expr_type\x18\x0f \x01(\x0b\x32\x12.ast.SpColExprTypeH\x00\x12\x31\n\x11sp_dataframe_type\x18\x10 \x01(\x0b\x32\x14.ast.SpDataframeTypeH\x00\x12@\n\x19sp_grouped_dataframe_type\x18\x11 \x01(\x0b\x32\x1b.ast.SpGroupedDataframeTypeH\x00\x12+\n\x0esp_window_type\x18\x12 \x01(\x0b\x32\x11.ast.SpWindowTypeH\x00\x12&\n\x0bstring_type\x18\x13 \x01(\x0b\x32\x0f.ast.StringTypeH\x00\x12$\n\ntuple_type\x18\x14 \x01(\x0b\x32\x0e.ast.TupleTypeH\x00\x12\x1c\n\x06ty_var\x18\x15 \x01(\x0b\x32\n.ast.TyVarH\x00\x12"\n\tunit_type\x18\x16 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x12(\n\x0cunknown_type\x18\x17 \x01(\x0b\x32\x10.ast.UnknownTypeH\x00\x42\t\n\x07variant"\r\n\x0bUnknownType"\t\n\x07\x41nyType"\xad\x02\n\nScalarType\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12"\n\tbool_type\x18\x02 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x03 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x04 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x05 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x06 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12"\n\tunit_type\x18\x07 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x42\t\n\x07variant"\xb6\x01\n\x0bNumericType\x12(\n\x0c\x66loat64_type\x18\x01 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x02 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x03 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x04 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x42\t\n\x07variant"\x0c\n\nNumberType"\r\n\x0bNothingType"\n\n\x08UnitType"\n\n\x08\x42oolType"\x0b\n\tInt32Type"\x0b\n\tInt64Type"\r\n\x0b\x46loat64Type"\x0c\n\nStringType"\x0c\n\nPdReprType";\n\x06\x46nType\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Type\x12\x16\n\x03ret\x18\x02 \x01(\x0b\x32\t.ast.Type"$\n\nOptionType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"#\n\tTupleType\x12\x16\n\x03tys\x18\x01 \x03(\x0b\x32\t.ast.Type""\n\x08ListType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"5\n\x07MapType\x12\x14\n\x01k\x18\x01 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Type"\x13\n\x05TyVar\x12\n\n\x02id\x18\x01 \x01(\t*8\n\x0b__Version__\x12\x18\n\x14PROTO3_REQUIRES_THIS\x10\x00\x12\x0f\n\x0bMAX_VERSION\x10\x01\x42%\n\x1c\x63om.snowflake.snowpark.proto\xe2?\x04H\x01X\x00\x62\x06proto3' ) _globals = globals() @@ -34,662 +34,666 @@ _globals[ "DESCRIPTOR" ]._serialized_options = b"\n\034com.snowflake.snowpark.proto\342?\004H\001X\000" - _globals["___VERSION__"]._serialized_start = 68958 - _globals["___VERSION__"]._serialized_end = 69014 + _globals["___VERSION__"]._serialized_start = 69831 + _globals["___VERSION__"]._serialized_end = 69887 _globals["_LIST_EXPR"]._serialized_start = 79 _globals["_LIST_EXPR"]._serialized_end = 115 _globals["_LIST_SPCOLUMNEXPR"]._serialized_start = 117 _globals["_LIST_SPCOLUMNEXPR"]._serialized_end = 169 - _globals["_LIST_STRING"]._serialized_start = 171 - _globals["_LIST_STRING"]._serialized_end = 198 - _globals["_MAP_EXPR_EXPR"]._serialized_start = 200 - _globals["_MAP_EXPR_EXPR"]._serialized_end = 251 - _globals["_MAP_STRING_EXPR"]._serialized_start = 253 - _globals["_MAP_STRING_EXPR"]._serialized_end = 308 - _globals["_MAP_STRING_STRING"]._serialized_start = 310 - _globals["_MAP_STRING_STRING"]._serialized_end = 369 - _globals["_TUPLE_EXPR_EXPR"]._serialized_start = 371 - _globals["_TUPLE_EXPR_EXPR"]._serialized_end = 434 - _globals["_TUPLE_EXPR_FLOAT"]._serialized_start = 436 - _globals["_TUPLE_EXPR_FLOAT"]._serialized_end = 489 - _globals["_TUPLE_STRING_EXPR"]._serialized_start = 491 - _globals["_TUPLE_STRING_EXPR"]._serialized_end = 545 - _globals["_TUPLE_STRING_LIST_STRING"]._serialized_start = 547 - _globals["_TUPLE_STRING_LIST_STRING"]._serialized_end = 597 - _globals["_TUPLE_STRING_SPCOLUMNEXPR"]._serialized_start = 599 - _globals["_TUPLE_STRING_SPCOLUMNEXPR"]._serialized_end = 669 - _globals["_TUPLE_STRING_SPVARIANT"]._serialized_start = 671 - _globals["_TUPLE_STRING_SPVARIANT"]._serialized_end = 735 - _globals["_TUPLE_STRING_STRING"]._serialized_start = 737 - _globals["_TUPLE_STRING_STRING"]._serialized_end = 782 - _globals["_LANGUAGE"]._serialized_start = 785 - _globals["_LANGUAGE"]._serialized_end = 949 - _globals["_PYTHONLANGUAGE"]._serialized_start = 951 - _globals["_PYTHONLANGUAGE"]._serialized_end = 998 - _globals["_SCALALANGUAGE"]._serialized_start = 1000 - _globals["_SCALALANGUAGE"]._serialized_end = 1046 - _globals["_JAVALANGUAGE"]._serialized_start = 1048 - _globals["_JAVALANGUAGE"]._serialized_end = 1093 - _globals["_VERSION"]._serialized_start = 1095 - _globals["_VERSION"]._serialized_end = 1164 - _globals["_PYTHONTIMEZONE"]._serialized_start = 1166 - _globals["_PYTHONTIMEZONE"]._serialized_end = 1250 - _globals["_FNNAME"]._serialized_start = 1252 - _globals["_FNNAME"]._serialized_end = 1370 - _globals["_FNNAMEFLAT"]._serialized_start = 1372 - _globals["_FNNAMEFLAT"]._serialized_end = 1398 - _globals["_FNNAMESTRUCTURED"]._serialized_start = 1400 - _globals["_FNNAMESTRUCTURED"]._serialized_end = 1432 - _globals["_TABLEFNCALLTYPE"]._serialized_start = 1435 - _globals["_TABLEFNCALLTYPE"]._serialized_end = 1635 - _globals["_SPWINDOWRELATIVEPOSITION"]._serialized_start = 1638 - _globals["_SPWINDOWRELATIVEPOSITION"]._serialized_end = 1936 - _globals["_SPWINDOWRELATIVEPOSITION_POSITION"]._serialized_start = 1938 - _globals["_SPWINDOWRELATIVEPOSITION_POSITION"]._serialized_end = 1984 - _globals["_PDINDEXEXPR"]._serialized_start = 1986 - _globals["_PDINDEXEXPR"]._serialized_end = 2099 - _globals["_ORD"]._serialized_start = 2101 - _globals["_ORD"]._serialized_end = 2128 - _globals["_FLEXORD"]._serialized_start = 2130 - _globals["_FLEXORD"]._serialized_end = 2161 - _globals["_KEY"]._serialized_start = 2163 - _globals["_KEY"]._serialized_end = 2190 - _globals["_PDPROJECTINDEXEXPR"]._serialized_start = 2193 - _globals["_PDPROJECTINDEXEXPR"]._serialized_end = 2506 - _globals["_ORDRANGE"]._serialized_start = 2508 - _globals["_ORDRANGE"]._serialized_end = 2594 - _globals["_FLEXORDRANGE"]._serialized_start = 2596 - _globals["_FLEXORDRANGE"]._serialized_end = 2686 - _globals["_KEYRANGE"]._serialized_start = 2688 - _globals["_KEYRANGE"]._serialized_end = 2749 - _globals["_ORDLIST"]._serialized_start = 2751 - _globals["_ORDLIST"]._serialized_end = 2785 - _globals["_FLEXORDLIST"]._serialized_start = 2787 - _globals["_FLEXORDLIST"]._serialized_end = 2825 - _globals["_KEYLIST"]._serialized_start = 2827 - _globals["_KEYLIST"]._serialized_end = 2861 - _globals["_BOOLFILTERLIST"]._serialized_start = 2863 - _globals["_BOOLFILTERLIST"]._serialized_end = 2906 - _globals["_SPFLATTENMODE"]._serialized_start = 2908 - _globals["_SPFLATTENMODE"]._serialized_end = 3033 - _globals["_SPTABLEVARIANT"]._serialized_start = 3035 - _globals["_SPTABLEVARIANT"]._serialized_end = 3115 - _globals["_SPSAVEMODE"]._serialized_start = 3118 - _globals["_SPSAVEMODE"]._serialized_end = 3310 - _globals["_SPJOINTYPE"]._serialized_start = 3313 - _globals["_SPJOINTYPE"]._serialized_end = 3607 - _globals["_SPTIMESTAMPTIMEZONE"]._serialized_start = 3610 - _globals["_SPTIMESTAMPTIMEZONE"]._serialized_end = 3797 - _globals["_SPDATATYPE"]._serialized_start = 3800 - _globals["_SPDATATYPE"]._serialized_end = 4602 - _globals["_SPARRAYTYPE"]._serialized_start = 4604 - _globals["_SPARRAYTYPE"]._serialized_end = 4666 - _globals["_SPCOLUMNIDENTIFIER"]._serialized_start = 4668 - _globals["_SPCOLUMNIDENTIFIER"]._serialized_end = 4702 - _globals["_SPDECIMALTYPE"]._serialized_start = 4704 - _globals["_SPDECIMALTYPE"]._serialized_end = 4753 - _globals["_SPMAPTYPE"]._serialized_start = 4755 - _globals["_SPMAPTYPE"]._serialized_end = 4854 - _globals["_SPSTRINGTYPE"]._serialized_start = 4856 - _globals["_SPSTRINGTYPE"]._serialized_end = 4915 - _globals["_SPSTRUCTFIELD"]._serialized_start = 4917 - _globals["_SPSTRUCTFIELD"]._serialized_end = 5038 - _globals["_SPSTRUCTTYPE"]._serialized_start = 5040 - _globals["_SPSTRUCTTYPE"]._serialized_end = 5110 - _globals["_SPTIMESTAMPTYPE"]._serialized_start = 5112 - _globals["_SPTIMESTAMPTYPE"]._serialized_end = 5174 - _globals["_SPVECTORTYPE"]._serialized_start = 5176 - _globals["_SPVECTORTYPE"]._serialized_end = 5238 - _globals["_SPVARIANT"]._serialized_start = 5241 - _globals["_SPVARIANT"]._serialized_end = 5947 - _globals["_SPVARIANT_OBJECT"]._serialized_start = 5949 - _globals["_SPVARIANT_OBJECT"]._serialized_end = 6004 - _globals["_SPVARIANT_LIST"]._serialized_start = 6006 - _globals["_SPVARIANT_LIST"]._serialized_end = 6057 - _globals["_SPVARIANT_TIMESTAMP"]._serialized_start = 6059 - _globals["_SPVARIANT_TIMESTAMP"]._serialized_end = 6091 - _globals["_SPVARIANT_DATE"]._serialized_start = 6093 - _globals["_SPVARIANT_DATE"]._serialized_end = 6120 - _globals["_SPVARIANT_TIME"]._serialized_start = 6122 - _globals["_SPVARIANT_TIME"]._serialized_end = 6149 - _globals["_SPVARIANT_BYTES"]._serialized_start = 6151 - _globals["_SPVARIANT_BYTES"]._serialized_end = 6179 - _globals["_SPVARIANT_STRING"]._serialized_start = 6181 - _globals["_SPVARIANT_STRING"]._serialized_end = 6210 - _globals["_SPVARIANT_BOOL"]._serialized_start = 6212 - _globals["_SPVARIANT_BOOL"]._serialized_end = 6239 - _globals["_SPVARIANT_BIGINT"]._serialized_start = 6241 - _globals["_SPVARIANT_BIGINT"]._serialized_end = 6270 - _globals["_SPVARIANT_BIGDECIMAL"]._serialized_start = 6272 - _globals["_SPVARIANT_BIGDECIMAL"]._serialized_end = 6305 - _globals["_SPVARIANT_INT"]._serialized_start = 6307 - _globals["_SPVARIANT_INT"]._serialized_end = 6333 - _globals["_SPVARIANT_FLOAT"]._serialized_start = 6335 - _globals["_SPVARIANT_FLOAT"]._serialized_end = 6363 - _globals["_SPVARIANT_DOUBLE"]._serialized_start = 6365 - _globals["_SPVARIANT_DOUBLE"]._serialized_end = 6394 - _globals["_SPTABLENAME"]._serialized_start = 6397 - _globals["_SPTABLENAME"]._serialized_end = 6542 - _globals["_SPTABLENAMEFLAT"]._serialized_start = 6544 - _globals["_SPTABLENAMEFLAT"]._serialized_end = 6575 - _globals["_SPTABLENAMESTRUCTURED"]._serialized_start = 6577 - _globals["_SPTABLENAMESTRUCTURED"]._serialized_end = 6614 - _globals["_STAGEDPANDASDATAFRAME"]._serialized_start = 6616 - _globals["_STAGEDPANDASDATAFRAME"]._serialized_end = 6677 - _globals["_SPDATAFRAMEDATA"]._serialized_start = 6680 - _globals["_SPDATAFRAMEDATA"]._serialized_end = 6905 - _globals["_SPDATAFRAMEDATA_LIST"]._serialized_start = 6907 - _globals["_SPDATAFRAMEDATA_LIST"]._serialized_end = 6952 - _globals["_SPDATAFRAMEDATA_TUPLE"]._serialized_start = 6954 - _globals["_SPDATAFRAMEDATA_TUPLE"]._serialized_end = 7000 - _globals["_SPDATAFRAMEDATA_PANDAS"]._serialized_start = 7002 - _globals["_SPDATAFRAMEDATA_PANDAS"]._serialized_end = 7065 - _globals["_SPDATAFRAMESCHEMA"]._serialized_start = 7068 - _globals["_SPDATAFRAMESCHEMA"]._serialized_end = 7239 - _globals["_SPDATAFRAMESCHEMA_LIST"]._serialized_start = 7241 - _globals["_SPDATAFRAMESCHEMA_LIST"]._serialized_end = 7277 - _globals["_SPDATAFRAMESCHEMA_STRUCT"]._serialized_start = 7279 - _globals["_SPDATAFRAMESCHEMA_STRUCT"]._serialized_end = 7335 - _globals["_SPCALLABLE"]._serialized_start = 7337 - _globals["_SPCALLABLE"]._serialized_end = 7375 - _globals["_SPPIVOTVALUE"]._serialized_start = 7378 - _globals["_SPPIVOTVALUE"]._serialized_end = 7530 - _globals["_SPPIVOTVALUE_EXPR"]._serialized_start = 7532 - _globals["_SPPIVOTVALUE_EXPR"]._serialized_end = 7573 - _globals["_SPPIVOTVALUE_DATAFRAME"]._serialized_start = 7575 - _globals["_SPPIVOTVALUE_DATAFRAME"]._serialized_end = 7631 - _globals["_SRCPOSITION"]._serialized_start = 7633 - _globals["_SRCPOSITION"]._serialized_end = 7740 - _globals["_VARID"]._serialized_start = 7742 - _globals["_VARID"]._serialized_end = 7768 - _globals["_REQUEST"]._serialized_start = 7771 - _globals["_REQUEST"]._serialized_end = 7911 - _globals["_RESPONSE"]._serialized_start = 7913 - _globals["_RESPONSE"]._serialized_end = 7950 - _globals["_CONST"]._serialized_start = 7953 - _globals["_CONST"]._serialized_end = 8687 - _globals["_NONEVAL"]._serialized_start = 8689 - _globals["_NONEVAL"]._serialized_end = 8729 - _globals["_NULLVAL"]._serialized_start = 8731 - _globals["_NULLVAL"]._serialized_end = 8771 - _globals["_BOOLVAL"]._serialized_start = 8773 - _globals["_BOOLVAL"]._serialized_end = 8824 - _globals["_INT32VAL"]._serialized_start = 8826 - _globals["_INT32VAL"]._serialized_end = 8878 - _globals["_INT64VAL"]._serialized_start = 8880 - _globals["_INT64VAL"]._serialized_end = 8932 - _globals["_FLOAT64VAL"]._serialized_start = 8934 - _globals["_FLOAT64VAL"]._serialized_end = 8988 - _globals["_BIGINTVAL"]._serialized_start = 8990 - _globals["_BIGINTVAL"]._serialized_end = 9043 - _globals["_BIGDECIMALVAL"]._serialized_start = 9045 - _globals["_BIGDECIMALVAL"]._serialized_end = 9130 - _globals["_STRINGVAL"]._serialized_start = 9132 - _globals["_STRINGVAL"]._serialized_end = 9185 - _globals["_BINARYVAL"]._serialized_start = 9187 - _globals["_BINARYVAL"]._serialized_end = 9240 - _globals["_TIMESTAMPVAL"]._serialized_start = 9242 - _globals["_TIMESTAMPVAL"]._serialized_end = 9298 - _globals["_DATEVAL"]._serialized_start = 9300 - _globals["_DATEVAL"]._serialized_end = 9351 - _globals["_TIMEVAL"]._serialized_start = 9353 - _globals["_TIMEVAL"]._serialized_end = 9404 - _globals["_PYTHONTIMESTAMPVAL"]._serialized_start = 9407 - _globals["_PYTHONTIMESTAMPVAL"]._serialized_end = 9600 - _globals["_PYTHONDATEVAL"]._serialized_start = 9602 - _globals["_PYTHONDATEVAL"]._serialized_end = 9690 - _globals["_PYTHONTIMEVAL"]._serialized_start = 9693 - _globals["_PYTHONTIMEVAL"]._serialized_end = 9839 - _globals["_FNVAL"]._serialized_start = 9841 - _globals["_FNVAL"]._serialized_end = 9920 - _globals["_SPDATATYPEVAL"]._serialized_start = 9922 - _globals["_SPDATATYPEVAL"]._serialized_end = 10003 - _globals["_IFEXPR"]._serialized_start = 10005 - _globals["_IFEXPR"]._serialized_end = 10126 - _globals["_SOMEVAL"]._serialized_start = 10128 - _globals["_SOMEVAL"]._serialized_end = 10190 - _globals["_TUPLEVAL"]._serialized_start = 10192 - _globals["_TUPLEVAL"]._serialized_end = 10256 - _globals["_LISTVAL"]._serialized_start = 10258 - _globals["_LISTVAL"]._serialized_end = 10321 - _globals["_SEQMAPVAL"]._serialized_start = 10323 - _globals["_SEQMAPVAL"]._serialized_end = 10393 - _globals["_APPLYEXPR"]._serialized_start = 10396 - _globals["_APPLYEXPR"]._serialized_end = 10539 - _globals["_FNREFEXPR"]._serialized_start = 10542 - _globals["_FNREFEXPR"]._serialized_end = 10760 - _globals["_BUILTINFN"]._serialized_start = 10762 - _globals["_BUILTINFN"]._serialized_end = 10831 - _globals["_STOREDPROCEDURE"]._serialized_start = 10834 - _globals["_STOREDPROCEDURE"]._serialized_end = 11013 - _globals["_UDF"]._serialized_start = 11015 - _globals["_UDF"]._serialized_end = 11078 - _globals["_SESSIONTABLEFN"]._serialized_start = 11080 - _globals["_SESSIONTABLEFN"]._serialized_end = 11154 - _globals["_TABLEFN"]._serialized_start = 11156 - _globals["_TABLEFN"]._serialized_end = 11264 - _globals["_UNARYOP"]._serialized_start = 11266 - _globals["_UNARYOP"]._serialized_end = 11336 - _globals["_BINOP"]._serialized_start = 11339 - _globals["_BINOP"]._serialized_end = 11793 - _globals["_NOT"]._serialized_start = 11795 - _globals["_NOT"]._serialized_end = 11859 - _globals["_AND"]._serialized_start = 11861 - _globals["_AND"]._serialized_end = 11945 - _globals["_OR"]._serialized_start = 11947 - _globals["_OR"]._serialized_end = 12030 - _globals["_EQ"]._serialized_start = 12032 - _globals["_EQ"]._serialized_end = 12115 - _globals["_NEQ"]._serialized_start = 12117 - _globals["_NEQ"]._serialized_end = 12201 - _globals["_LT"]._serialized_start = 12203 - _globals["_LT"]._serialized_end = 12286 - _globals["_LEQ"]._serialized_start = 12288 - _globals["_LEQ"]._serialized_end = 12372 - _globals["_GT"]._serialized_start = 12374 - _globals["_GT"]._serialized_end = 12457 - _globals["_GEQ"]._serialized_start = 12459 - _globals["_GEQ"]._serialized_end = 12543 - _globals["_NEG"]._serialized_start = 12545 - _globals["_NEG"]._serialized_end = 12609 - _globals["_ADD"]._serialized_start = 12611 - _globals["_ADD"]._serialized_end = 12695 - _globals["_SUB"]._serialized_start = 12697 - _globals["_SUB"]._serialized_end = 12781 - _globals["_MUL"]._serialized_start = 12783 - _globals["_MUL"]._serialized_end = 12867 - _globals["_DIV"]._serialized_start = 12869 - _globals["_DIV"]._serialized_end = 12953 - _globals["_MOD"]._serialized_start = 12955 - _globals["_MOD"]._serialized_end = 13039 - _globals["_POW"]._serialized_start = 13041 - _globals["_POW"]._serialized_end = 13125 - _globals["_BITAND"]._serialized_start = 13127 - _globals["_BITAND"]._serialized_end = 13214 - _globals["_BITOR"]._serialized_start = 13216 - _globals["_BITOR"]._serialized_end = 13302 - _globals["_BITXOR"]._serialized_start = 13304 - _globals["_BITXOR"]._serialized_end = 13391 - _globals["_RANGEVAL"]._serialized_start = 13393 - _globals["_RANGEVAL"]._serialized_end = 13510 - _globals["_SPWINDOWSPECEXPR"]._serialized_start = 13513 - _globals["_SPWINDOWSPECEXPR"]._serialized_end = 13868 - _globals["_SPWINDOWSPECEMPTY"]._serialized_start = 13870 - _globals["_SPWINDOWSPECEMPTY"]._serialized_end = 13956 - _globals["_SPWINDOWSPECORDERBY"]._serialized_start = 13958 - _globals["_SPWINDOWSPECORDERBY"]._serialized_end = 14071 - _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_start = 14073 - _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_end = 14190 - _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_start = 14193 - _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_end = 14376 - _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_start = 14379 - _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_end = 14561 - _globals["_EXPR"]._serialized_start = 14564 - _globals["_EXPR"]._serialized_end = 24847 - _globals["_REF"]._serialized_start = 24849 - _globals["_REF"]._serialized_end = 24913 - _globals["_CASTEXPR"]._serialized_start = 24915 - _globals["_CASTEXPR"]._serialized_end = 25002 - _globals["_PDDATAFRAME"]._serialized_start = 25005 - _globals["_PDDATAFRAME"]._serialized_end = 25154 - _globals["_PDDROPNA"]._serialized_start = 25157 - _globals["_PDDROPNA"]._serialized_end = 25299 - _globals["_PDDATAFRAMEGETITEM"]._serialized_start = 25301 - _globals["_PDDATAFRAMEGETITEM"]._serialized_end = 25402 - _globals["_PDDATAFRAMESETITEM"]._serialized_start = 25404 - _globals["_PDDATAFRAMESETITEM"]._serialized_end = 25527 - _globals["_PDDATAFRAMELOC"]._serialized_start = 25529 - _globals["_PDDATAFRAMELOC"]._serialized_end = 25651 - _globals["_PDDATAFRAMEILOC"]._serialized_start = 25653 - _globals["_PDDATAFRAMEILOC"]._serialized_end = 25776 - _globals["_PDREPR"]._serialized_start = 25778 - _globals["_PDREPR"]._serialized_end = 25892 - _globals["_PDREPRRESULT"]._serialized_start = 25894 - _globals["_PDREPRRESULT"]._serialized_end = 26011 - _globals["_RESULT"]._serialized_start = 26014 - _globals["_RESULT"]._serialized_end = 26172 - _globals["_EVALRESULT"]._serialized_start = 26175 - _globals["_EVALRESULT"]._serialized_end = 26994 - _globals["_EVALOK"]._serialized_start = 26996 - _globals["_EVALOK"]._serialized_end = 27076 - _globals["_ERROR"]._serialized_start = 27078 - _globals["_ERROR"]._serialized_end = 27168 - _globals["_SESSIONRESETREQUIREDERROR"]._serialized_start = 27170 - _globals["_SESSIONRESETREQUIREDERROR"]._serialized_end = 27238 - _globals["_SPCOLUMNEXPR"]._serialized_start = 27241 - _globals["_SPCOLUMNEXPR"]._serialized_end = 27573 - _globals["_SPCOLUMNREF"]._serialized_start = 27575 - _globals["_SPCOLUMNREF"]._serialized_end = 27631 - _globals["_SPCOLUMNSQLEXPR"]._serialized_start = 27633 - _globals["_SPCOLUMNSQLEXPR"]._serialized_end = 27742 - _globals["_SPCASEEXPR"]._serialized_start = 27744 - _globals["_SPCASEEXPR"]._serialized_end = 27843 - _globals["_SPCOLUMNCASEWHEN"]._serialized_start = 27845 - _globals["_SPCOLUMNCASEWHEN"]._serialized_end = 27926 - _globals["_SPCOLUMNFN"]._serialized_start = 27929 - _globals["_SPCOLUMNFN"]._serialized_end = 29226 - _globals["_SPCOLUMNALIAS"]._serialized_start = 29229 - _globals["_SPCOLUMNALIAS"]._serialized_end = 29364 - _globals["_SPCOLUMNAPPLY_INT"]._serialized_start = 29366 - _globals["_SPCOLUMNAPPLY_INT"]._serialized_end = 29453 - _globals["_SPCOLUMNAPPLY_STRING"]._serialized_start = 29455 - _globals["_SPCOLUMNAPPLY_STRING"]._serialized_end = 29547 - _globals["_SPCOLUMNASC"]._serialized_start = 29549 - _globals["_SPCOLUMNASC"]._serialized_end = 29666 - _globals["_SPCOLUMNBETWEEN"]._serialized_start = 29669 - _globals["_SPCOLUMNBETWEEN"]._serialized_end = 29805 - _globals["_SPCOLUMNCAST"]._serialized_start = 29807 - _globals["_SPCOLUMNCAST"]._serialized_end = 29905 - _globals["_SPCOLUMNTRYCAST"]._serialized_start = 29907 - _globals["_SPCOLUMNTRYCAST"]._serialized_end = 30008 - _globals["_SPCOLUMNDESC"]._serialized_start = 30010 - _globals["_SPCOLUMNDESC"]._serialized_end = 30128 - _globals["_SPCOLUMNEQUALNAN"]._serialized_start = 30130 - _globals["_SPCOLUMNEQUALNAN"]._serialized_end = 30203 - _globals["_SPCOLUMNEQUALNULL"]._serialized_start = 30205 - _globals["_SPCOLUMNEQUALNULL"]._serialized_end = 30303 - _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_start = 30305 - _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_end = 30416 - _globals["_SPCOLUMNIN_SEQ"]._serialized_start = 30418 - _globals["_SPCOLUMNIN_SEQ"]._serialized_end = 30516 - _globals["_SPCOLUMNISNOTNULL"]._serialized_start = 30518 - _globals["_SPCOLUMNISNOTNULL"]._serialized_end = 30592 - _globals["_SPCOLUMNISNULL"]._serialized_start = 30594 - _globals["_SPCOLUMNISNULL"]._serialized_end = 30665 - _globals["_SPCOLUMNNAME"]._serialized_start = 30667 - _globals["_SPCOLUMNNAME"]._serialized_end = 30751 - _globals["_SPCOLUMNOVER"]._serialized_start = 30753 - _globals["_SPCOLUMNOVER"]._serialized_end = 30866 - _globals["_SPCOLUMNWITHINGROUP"]._serialized_start = 30868 - _globals["_SPCOLUMNWITHINGROUP"]._serialized_end = 30976 - _globals["_SPCOLUMNSTRINGLIKE"]._serialized_start = 30978 - _globals["_SPCOLUMNSTRINGLIKE"]._serialized_end = 31081 - _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_start = 31084 - _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_end = 31220 - _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_start = 31222 - _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_end = 31330 - _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_start = 31332 - _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_end = 31438 - _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_start = 31440 - _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_end = 31565 - _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_start = 31567 - _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_end = 31680 - _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_start = 31682 - _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_end = 31789 - _globals["_SPDATAFRAMEEXPR"]._serialized_start = 31792 - _globals["_SPDATAFRAMEEXPR"]._serialized_end = 36322 - _globals["_SPDATAFRAMEREF"]._serialized_start = 36324 - _globals["_SPDATAFRAMEREF"]._serialized_end = 36395 - _globals["_SPDATAFRAMESHOW"]._serialized_start = 36397 - _globals["_SPDATAFRAMESHOW"]._serialized_end = 36469 - _globals["_SPDATAFRAMECOUNT"]._serialized_start = 36472 - _globals["_SPDATAFRAMECOUNT"]._serialized_end = 36612 - _globals["_SPDATAFRAMECOLLECT"]._serialized_start = 36615 - _globals["_SPDATAFRAMECOLLECT"]._serialized_end = 36824 - _globals["_SPCREATEDATAFRAME"]._serialized_start = 36826 - _globals["_SPCREATEDATAFRAME"]._serialized_end = 36952 - _globals["_SPWRITEPANDAS"]._serialized_start = 36955 - _globals["_SPWRITEPANDAS"]._serialized_end = 37339 - _globals["_SPFLATTEN"]._serialized_start = 37342 - _globals["_SPFLATTEN"]._serialized_end = 37522 - _globals["_SPGENERATOR"]._serialized_start = 37525 - _globals["_SPGENERATOR"]._serialized_end = 37662 - _globals["_SPRANGE"]._serialized_start = 37665 - _globals["_SPRANGE"]._serialized_end = 37805 - _globals["_SPSQL"]._serialized_start = 37807 - _globals["_SPSQL"]._serialized_end = 37887 - _globals["_SPSTOREDPROCEDURE"]._serialized_start = 37889 - _globals["_SPSTOREDPROCEDURE"]._serialized_end = 38004 - _globals["_SPTABLE"]._serialized_start = 38007 - _globals["_SPTABLE"]._serialized_end = 38152 - _globals["_SPTABLEFUNCTION"]._serialized_start = 38154 - _globals["_SPTABLEFUNCTION"]._serialized_end = 38278 - _globals["_SPDATAFRAMETODF"]._serialized_start = 38280 - _globals["_SPDATAFRAMETODF"]._serialized_end = 38399 - _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_start = 38402 - _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_end = 38537 - _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_start = 38540 - _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_end = 38723 - _globals["_SPDATAFRAMENAFILL"]._serialized_start = 38726 - _globals["_SPDATAFRAMENAFILL"]._serialized_end = 38911 - _globals["_SPDATAFRAMENAREPLACE"]._serialized_start = 38914 - _globals["_SPDATAFRAMENAREPLACE"]._serialized_end = 39216 - _globals["_SPDATAFRAMEAGG"]._serialized_start = 39218 - _globals["_SPDATAFRAMEAGG"]._serialized_end = 39332 - _globals["_SPDATAFRAMEALIAS"]._serialized_start = 39334 - _globals["_SPDATAFRAMEALIAS"]._serialized_end = 39431 - _globals["_SPDATAFRAMEAPPLY"]._serialized_start = 39433 - _globals["_SPDATAFRAMEAPPLY"]._serialized_end = 39534 - _globals["_SPDATAFRAMECOL"]._serialized_start = 39536 - _globals["_SPDATAFRAMECOL"]._serialized_end = 39635 - _globals["_SPDATAFRAMECROSSJOIN"]._serialized_start = 39638 - _globals["_SPDATAFRAMECROSSJOIN"]._serialized_end = 39855 - _globals["_SPDATAFRAMECUBE"]._serialized_start = 39857 - _globals["_SPDATAFRAMECUBE"]._serialized_end = 39971 - _globals["_SPDATAFRAMEDESCRIBE"]._serialized_start = 39973 - _globals["_SPDATAFRAMEDESCRIBE"]._serialized_end = 40091 - _globals["_SPDATAFRAMEDISTINCT"]._serialized_start = 40093 - _globals["_SPDATAFRAMEDISTINCT"]._serialized_end = 40179 - _globals["_SPDATAFRAMEDROP"]._serialized_start = 40181 - _globals["_SPDATAFRAMEDROP"]._serialized_end = 40295 - _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_start = 40297 - _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_end = 40421 - _globals["_SPDATAFRAMEEXCEPT"]._serialized_start = 40423 - _globals["_SPDATAFRAMEEXCEPT"]._serialized_end = 40544 - _globals["_SPDATAFRAMEFILTER"]._serialized_start = 40546 - _globals["_SPDATAFRAMEFILTER"]._serialized_end = 40660 - _globals["_SPDATAFRAMEFLATTEN"]._serialized_start = 40663 - _globals["_SPDATAFRAMEFLATTEN"]._serialized_end = 40886 - _globals["_SPDATAFRAMEFIRST"]._serialized_start = 40889 - _globals["_SPDATAFRAMEFIRST"]._serialized_end = 41052 - _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_start = 41055 - _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_end = 41199 - _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_start = 41201 - _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_end = 41326 - _globals["_SPDATAFRAMEGROUPBY"]._serialized_start = 41328 - _globals["_SPDATAFRAMEGROUPBY"]._serialized_end = 41445 - _globals["_SPDATAFRAMEINTERSECT"]._serialized_start = 41447 - _globals["_SPDATAFRAMEINTERSECT"]._serialized_end = 41571 - _globals["_SPDATAFRAMEJOIN"]._serialized_start = 41574 - _globals["_SPDATAFRAMEJOIN"]._serialized_end = 41888 - _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_start = 41891 - _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_end = 42161 - _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_start = 42164 - _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_end = 42440 - _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_start = 42443 - _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_end = 42659 - _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_start = 42662 - _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_end = 42898 - _globals["_SPDATAFRAMELIMIT"]._serialized_start = 42900 - _globals["_SPDATAFRAMELIMIT"]._serialized_end = 43010 - _globals["_SPDATAFRAMENATURALJOIN"]._serialized_start = 43013 - _globals["_SPDATAFRAMENATURALJOIN"]._serialized_end = 43174 - _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_start = 43177 - _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_end = 43340 - _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_start = 43343 - _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_end = 43487 - _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_start = 43490 - _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_end = 43691 - _globals["_SPDATAFRAMERENAME"]._serialized_start = 43694 - _globals["_SPDATAFRAMERENAME"]._serialized_end = 43862 - _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_start = 43865 - _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_end = 44008 - _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_start = 44010 - _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_end = 44134 - _globals["_SPDATAFRAMEROLLUP"]._serialized_start = 44136 - _globals["_SPDATAFRAMEROLLUP"]._serialized_end = 44252 - _globals["_SPDATAFRAMESAMPLE"]._serialized_start = 44255 - _globals["_SPDATAFRAMESAMPLE"]._serialized_end = 44441 - _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_start = 44444 - _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_end = 44579 - _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_start = 44581 - _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_end = 44704 - _globals["_SPDATAFRAMESORT"]._serialized_start = 44707 - _globals["_SPDATAFRAMESORT"]._serialized_end = 44867 - _globals["_SPDATAFRAMEUNION"]._serialized_start = 44869 - _globals["_SPDATAFRAMEUNION"]._serialized_end = 44989 - _globals["_SPDATAFRAMEUNIONALL"]._serialized_start = 44991 - _globals["_SPDATAFRAMEUNIONALL"]._serialized_end = 45114 - _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_start = 45117 - _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_end = 45246 - _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_start = 45248 - _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_end = 45374 - _globals["_SPDATAFRAMEWHERE"]._serialized_start = 45376 - _globals["_SPDATAFRAMEWHERE"]._serialized_end = 45497 - _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_start = 45500 - _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_end = 45630 - _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_start = 45633 - _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_end = 45770 - _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_start = 45773 - _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_end = 45908 - _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_start = 45911 - _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_end = 46070 - _globals["_SPGROUPINGSETS"]._serialized_start = 46072 - _globals["_SPGROUPINGSETS"]._serialized_end = 46151 - _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_start = 46154 - _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_end = 46382 - _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_start = 46385 - _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_end = 46615 - _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_start = 46618 - _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_end = 46819 - _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_start = 46822 - _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_end = 47025 - _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_start = 47028 - _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_end = 47281 - _globals["_SPDATAFRAMEREADER"]._serialized_start = 47284 - _globals["_SPDATAFRAMEREADER"]._serialized_end = 47665 - _globals["_SPDATAFRAMEREADERINIT"]._serialized_start = 47667 - _globals["_SPDATAFRAMEREADERINIT"]._serialized_end = 47721 - _globals["_SPDATAFRAMEREADEROPTION"]._serialized_start = 47724 - _globals["_SPDATAFRAMEREADEROPTION"]._serialized_end = 47859 - _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_start = 47862 - _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_end = 48000 - _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_start = 48003 - _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_end = 48134 - _globals["_SPDATAFRAMEREADERWITHMETADATA"]._serialized_start = 48137 - _globals["_SPDATAFRAMEREADERWITHMETADATA"]._serialized_end = 48283 - _globals["_SPREADTABLE"]._serialized_start = 48285 - _globals["_SPREADTABLE"]._serialized_end = 48401 - _globals["_SPREADCSV"]._serialized_start = 48403 - _globals["_SPREADCSV"]._serialized_end = 48499 - _globals["_SPREADJSON"]._serialized_start = 48501 - _globals["_SPREADJSON"]._serialized_end = 48598 - _globals["_SPREADAVRO"]._serialized_start = 48600 - _globals["_SPREADAVRO"]._serialized_end = 48697 - _globals["_SPREADORC"]._serialized_start = 48699 - _globals["_SPREADORC"]._serialized_end = 48795 - _globals["_SPREADPARQUET"]._serialized_start = 48797 - _globals["_SPREADPARQUET"]._serialized_end = 48897 - _globals["_SPREADXML"]._serialized_start = 48899 - _globals["_SPREADXML"]._serialized_end = 48995 - _globals["_SPDATAFRAMEWRITER"]._serialized_start = 48998 - _globals["_SPDATAFRAMEWRITER"]._serialized_end = 49479 - _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_start = 49481 - _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_end = 49536 - _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_start = 49538 - _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_end = 49592 - _globals["_SPDATAFRAMEWRITE"]._serialized_start = 49594 - _globals["_SPDATAFRAMEWRITE"]._serialized_end = 49713 - _globals["_SPWRITEFILE"]._serialized_start = 49716 - _globals["_SPWRITEFILE"]._serialized_end = 49942 - _globals["_SPWRITECSV"]._serialized_start = 49945 - _globals["_SPWRITECSV"]._serialized_end = 50247 - _globals["_SPWRITEJSON"]._serialized_start = 50250 - _globals["_SPWRITEJSON"]._serialized_end = 50553 - _globals["_SPWRITEPARQUET"]._serialized_start = 50556 - _globals["_SPWRITEPARQUET"]._serialized_end = 50862 - _globals["_SPWRITETABLE"]._serialized_start = 50865 - _globals["_SPWRITETABLE"]._serialized_end = 51227 - _globals["_SPWRITECOPYINTOLOCATION"]._serialized_start = 51230 - _globals["_SPWRITECOPYINTOLOCATION"]._serialized_end = 51657 - _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_start = 51660 - _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_end = 51887 - _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_start = 51890 - _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_end = 52140 - _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_start = 52143 - _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_end = 52582 - _globals["_SPDATAFRAMECACHERESULT"]._serialized_start = 52585 - _globals["_SPDATAFRAMECACHERESULT"]._serialized_end = 52726 - _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_start = 52729 - _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_end = 52912 - _globals["_SPDATAFRAMESTATCORR"]._serialized_start = 52915 - _globals["_SPDATAFRAMESTATCORR"]._serialized_end = 53093 - _globals["_SPDATAFRAMESTATCOV"]._serialized_start = 53096 - _globals["_SPDATAFRAMESTATCOV"]._serialized_end = 53273 - _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_start = 53276 - _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_end = 53458 - _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_start = 53461 - _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_end = 53617 - _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_start = 53620 - _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_end = 54428 - _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_start = 54430 - _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_end = 54518 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_start = 54521 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_end = 54677 - _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_start = 54680 - _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_end = 54857 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAPPLYINPANDAS"]._serialized_start = 54860 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAPPLYINPANDAS"]._serialized_end = 55106 - _globals["_SPRELATIONALGROUPEDDATAFRAMEPIVOT"]._serialized_start = 55109 - _globals["_SPRELATIONALGROUPEDDATAFRAMEPIVOT"]._serialized_end = 55335 - _globals["_SPROW"]._serialized_start = 55337 - _globals["_SPROW"]._serialized_end = 55431 - _globals["_EXPRARGLIST"]._serialized_start = 55433 - _globals["_EXPRARGLIST"]._serialized_end = 55489 - _globals["_SPDATAFRAMETYPE"]._serialized_start = 55491 - _globals["_SPDATAFRAMETYPE"]._serialized_end = 55549 - _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_start = 55551 - _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_end = 55621 - _globals["_SPWINDOWTYPE"]._serialized_start = 55623 - _globals["_SPWINDOWTYPE"]._serialized_end = 55637 - _globals["_SPCOLEXPRTYPE"]._serialized_start = 55639 - _globals["_SPCOLEXPRTYPE"]._serialized_end = 55678 - _globals["_HASSRCPOSITION"]._serialized_start = 55681 - _globals["_HASSRCPOSITION"]._serialized_end = 66860 - _globals["_STMT"]._serialized_start = 66862 - _globals["_STMT"]._serialized_end = 66937 - _globals["_ASSIGN"]._serialized_start = 66939 - _globals["_ASSIGN"]._serialized_end = 67059 - _globals["_EVAL"]._serialized_start = 67061 - _globals["_EVAL"]._serialized_end = 67108 - _globals["_TYPE"]._serialized_start = 67111 - _globals["_TYPE"]._serialized_end = 68071 - _globals["_UNKNOWNTYPE"]._serialized_start = 68073 - _globals["_UNKNOWNTYPE"]._serialized_end = 68086 - _globals["_ANYTYPE"]._serialized_start = 68088 - _globals["_ANYTYPE"]._serialized_end = 68097 - _globals["_SCALARTYPE"]._serialized_start = 68100 - _globals["_SCALARTYPE"]._serialized_end = 68401 - _globals["_NUMERICTYPE"]._serialized_start = 68404 - _globals["_NUMERICTYPE"]._serialized_end = 68586 - _globals["_NUMBERTYPE"]._serialized_start = 68588 - _globals["_NUMBERTYPE"]._serialized_end = 68600 - _globals["_NOTHINGTYPE"]._serialized_start = 68602 - _globals["_NOTHINGTYPE"]._serialized_end = 68615 - _globals["_UNITTYPE"]._serialized_start = 68617 - _globals["_UNITTYPE"]._serialized_end = 68627 - _globals["_BOOLTYPE"]._serialized_start = 68629 - _globals["_BOOLTYPE"]._serialized_end = 68639 - _globals["_INT32TYPE"]._serialized_start = 68641 - _globals["_INT32TYPE"]._serialized_end = 68652 - _globals["_INT64TYPE"]._serialized_start = 68654 - _globals["_INT64TYPE"]._serialized_end = 68665 - _globals["_FLOAT64TYPE"]._serialized_start = 68667 - _globals["_FLOAT64TYPE"]._serialized_end = 68680 - _globals["_STRINGTYPE"]._serialized_start = 68682 - _globals["_STRINGTYPE"]._serialized_end = 68694 - _globals["_PDREPRTYPE"]._serialized_start = 68696 - _globals["_PDREPRTYPE"]._serialized_end = 68708 - _globals["_FNTYPE"]._serialized_start = 68710 - _globals["_FNTYPE"]._serialized_end = 68769 - _globals["_OPTIONTYPE"]._serialized_start = 68771 - _globals["_OPTIONTYPE"]._serialized_end = 68807 - _globals["_TUPLETYPE"]._serialized_start = 68809 - _globals["_TUPLETYPE"]._serialized_end = 68844 - _globals["_LISTTYPE"]._serialized_start = 68846 - _globals["_LISTTYPE"]._serialized_end = 68880 - _globals["_MAPTYPE"]._serialized_start = 68882 - _globals["_MAPTYPE"]._serialized_end = 68935 - _globals["_TYVAR"]._serialized_start = 68937 - _globals["_TYVAR"]._serialized_end = 68956 + _globals["_LIST_SPDATATYPE"]._serialized_start = 171 + _globals["_LIST_SPDATATYPE"]._serialized_end = 219 + _globals["_LIST_STRING"]._serialized_start = 221 + _globals["_LIST_STRING"]._serialized_end = 248 + _globals["_MAP_EXPR_EXPR"]._serialized_start = 250 + _globals["_MAP_EXPR_EXPR"]._serialized_end = 301 + _globals["_MAP_STRING_EXPR"]._serialized_start = 303 + _globals["_MAP_STRING_EXPR"]._serialized_end = 358 + _globals["_MAP_STRING_STRING"]._serialized_start = 360 + _globals["_MAP_STRING_STRING"]._serialized_end = 419 + _globals["_TUPLE_EXPR_EXPR"]._serialized_start = 421 + _globals["_TUPLE_EXPR_EXPR"]._serialized_end = 484 + _globals["_TUPLE_EXPR_FLOAT"]._serialized_start = 486 + _globals["_TUPLE_EXPR_FLOAT"]._serialized_end = 539 + _globals["_TUPLE_STRING_EXPR"]._serialized_start = 541 + _globals["_TUPLE_STRING_EXPR"]._serialized_end = 595 + _globals["_TUPLE_STRING_LIST_STRING"]._serialized_start = 597 + _globals["_TUPLE_STRING_LIST_STRING"]._serialized_end = 647 + _globals["_TUPLE_STRING_SPCOLUMNEXPR"]._serialized_start = 649 + _globals["_TUPLE_STRING_SPCOLUMNEXPR"]._serialized_end = 719 + _globals["_TUPLE_STRING_SPVARIANT"]._serialized_start = 721 + _globals["_TUPLE_STRING_SPVARIANT"]._serialized_end = 785 + _globals["_TUPLE_STRING_STRING"]._serialized_start = 787 + _globals["_TUPLE_STRING_STRING"]._serialized_end = 832 + _globals["_LANGUAGE"]._serialized_start = 835 + _globals["_LANGUAGE"]._serialized_end = 999 + _globals["_PYTHONLANGUAGE"]._serialized_start = 1001 + _globals["_PYTHONLANGUAGE"]._serialized_end = 1048 + _globals["_SCALALANGUAGE"]._serialized_start = 1050 + _globals["_SCALALANGUAGE"]._serialized_end = 1096 + _globals["_JAVALANGUAGE"]._serialized_start = 1098 + _globals["_JAVALANGUAGE"]._serialized_end = 1143 + _globals["_VERSION"]._serialized_start = 1145 + _globals["_VERSION"]._serialized_end = 1214 + _globals["_PYTHONTIMEZONE"]._serialized_start = 1216 + _globals["_PYTHONTIMEZONE"]._serialized_end = 1300 + _globals["_FNNAME"]._serialized_start = 1302 + _globals["_FNNAME"]._serialized_end = 1420 + _globals["_FNNAMEFLAT"]._serialized_start = 1422 + _globals["_FNNAMEFLAT"]._serialized_end = 1448 + _globals["_FNNAMESTRUCTURED"]._serialized_start = 1450 + _globals["_FNNAMESTRUCTURED"]._serialized_end = 1482 + _globals["_TABLEFNCALLTYPE"]._serialized_start = 1485 + _globals["_TABLEFNCALLTYPE"]._serialized_end = 1685 + _globals["_SPWINDOWRELATIVEPOSITION"]._serialized_start = 1688 + _globals["_SPWINDOWRELATIVEPOSITION"]._serialized_end = 1986 + _globals["_SPWINDOWRELATIVEPOSITION_POSITION"]._serialized_start = 1988 + _globals["_SPWINDOWRELATIVEPOSITION_POSITION"]._serialized_end = 2034 + _globals["_PDINDEXEXPR"]._serialized_start = 2036 + _globals["_PDINDEXEXPR"]._serialized_end = 2149 + _globals["_ORD"]._serialized_start = 2151 + _globals["_ORD"]._serialized_end = 2178 + _globals["_FLEXORD"]._serialized_start = 2180 + _globals["_FLEXORD"]._serialized_end = 2211 + _globals["_KEY"]._serialized_start = 2213 + _globals["_KEY"]._serialized_end = 2240 + _globals["_PDPROJECTINDEXEXPR"]._serialized_start = 2243 + _globals["_PDPROJECTINDEXEXPR"]._serialized_end = 2556 + _globals["_ORDRANGE"]._serialized_start = 2558 + _globals["_ORDRANGE"]._serialized_end = 2644 + _globals["_FLEXORDRANGE"]._serialized_start = 2646 + _globals["_FLEXORDRANGE"]._serialized_end = 2736 + _globals["_KEYRANGE"]._serialized_start = 2738 + _globals["_KEYRANGE"]._serialized_end = 2799 + _globals["_ORDLIST"]._serialized_start = 2801 + _globals["_ORDLIST"]._serialized_end = 2835 + _globals["_FLEXORDLIST"]._serialized_start = 2837 + _globals["_FLEXORDLIST"]._serialized_end = 2875 + _globals["_KEYLIST"]._serialized_start = 2877 + _globals["_KEYLIST"]._serialized_end = 2911 + _globals["_BOOLFILTERLIST"]._serialized_start = 2913 + _globals["_BOOLFILTERLIST"]._serialized_end = 2956 + _globals["_SPFLATTENMODE"]._serialized_start = 2958 + _globals["_SPFLATTENMODE"]._serialized_end = 3083 + _globals["_SPTABLEVARIANT"]._serialized_start = 3085 + _globals["_SPTABLEVARIANT"]._serialized_end = 3165 + _globals["_SPSAVEMODE"]._serialized_start = 3168 + _globals["_SPSAVEMODE"]._serialized_end = 3360 + _globals["_SPJOINTYPE"]._serialized_start = 3363 + _globals["_SPJOINTYPE"]._serialized_end = 3657 + _globals["_SPTIMESTAMPTIMEZONE"]._serialized_start = 3660 + _globals["_SPTIMESTAMPTIMEZONE"]._serialized_end = 3847 + _globals["_SPDATATYPE"]._serialized_start = 3850 + _globals["_SPDATATYPE"]._serialized_end = 4652 + _globals["_SPARRAYTYPE"]._serialized_start = 4654 + _globals["_SPARRAYTYPE"]._serialized_end = 4716 + _globals["_SPCOLUMNIDENTIFIER"]._serialized_start = 4718 + _globals["_SPCOLUMNIDENTIFIER"]._serialized_end = 4752 + _globals["_SPDECIMALTYPE"]._serialized_start = 4754 + _globals["_SPDECIMALTYPE"]._serialized_end = 4803 + _globals["_SPMAPTYPE"]._serialized_start = 4805 + _globals["_SPMAPTYPE"]._serialized_end = 4904 + _globals["_SPSTRINGTYPE"]._serialized_start = 4906 + _globals["_SPSTRINGTYPE"]._serialized_end = 4965 + _globals["_SPSTRUCTFIELD"]._serialized_start = 4967 + _globals["_SPSTRUCTFIELD"]._serialized_end = 5088 + _globals["_SPSTRUCTTYPE"]._serialized_start = 5090 + _globals["_SPSTRUCTTYPE"]._serialized_end = 5160 + _globals["_SPTIMESTAMPTYPE"]._serialized_start = 5162 + _globals["_SPTIMESTAMPTYPE"]._serialized_end = 5224 + _globals["_SPVECTORTYPE"]._serialized_start = 5226 + _globals["_SPVECTORTYPE"]._serialized_end = 5288 + _globals["_SPVARIANT"]._serialized_start = 5291 + _globals["_SPVARIANT"]._serialized_end = 5997 + _globals["_SPVARIANT_OBJECT"]._serialized_start = 5999 + _globals["_SPVARIANT_OBJECT"]._serialized_end = 6054 + _globals["_SPVARIANT_LIST"]._serialized_start = 6056 + _globals["_SPVARIANT_LIST"]._serialized_end = 6107 + _globals["_SPVARIANT_TIMESTAMP"]._serialized_start = 6109 + _globals["_SPVARIANT_TIMESTAMP"]._serialized_end = 6141 + _globals["_SPVARIANT_DATE"]._serialized_start = 6143 + _globals["_SPVARIANT_DATE"]._serialized_end = 6170 + _globals["_SPVARIANT_TIME"]._serialized_start = 6172 + _globals["_SPVARIANT_TIME"]._serialized_end = 6199 + _globals["_SPVARIANT_BYTES"]._serialized_start = 6201 + _globals["_SPVARIANT_BYTES"]._serialized_end = 6229 + _globals["_SPVARIANT_STRING"]._serialized_start = 6231 + _globals["_SPVARIANT_STRING"]._serialized_end = 6260 + _globals["_SPVARIANT_BOOL"]._serialized_start = 6262 + _globals["_SPVARIANT_BOOL"]._serialized_end = 6289 + _globals["_SPVARIANT_BIGINT"]._serialized_start = 6291 + _globals["_SPVARIANT_BIGINT"]._serialized_end = 6320 + _globals["_SPVARIANT_BIGDECIMAL"]._serialized_start = 6322 + _globals["_SPVARIANT_BIGDECIMAL"]._serialized_end = 6355 + _globals["_SPVARIANT_INT"]._serialized_start = 6357 + _globals["_SPVARIANT_INT"]._serialized_end = 6383 + _globals["_SPVARIANT_FLOAT"]._serialized_start = 6385 + _globals["_SPVARIANT_FLOAT"]._serialized_end = 6413 + _globals["_SPVARIANT_DOUBLE"]._serialized_start = 6415 + _globals["_SPVARIANT_DOUBLE"]._serialized_end = 6444 + _globals["_SPTABLENAME"]._serialized_start = 6447 + _globals["_SPTABLENAME"]._serialized_end = 6592 + _globals["_SPTABLENAMEFLAT"]._serialized_start = 6594 + _globals["_SPTABLENAMEFLAT"]._serialized_end = 6625 + _globals["_SPTABLENAMESTRUCTURED"]._serialized_start = 6627 + _globals["_SPTABLENAMESTRUCTURED"]._serialized_end = 6664 + _globals["_STAGEDPANDASDATAFRAME"]._serialized_start = 6666 + _globals["_STAGEDPANDASDATAFRAME"]._serialized_end = 6727 + _globals["_SPDATAFRAMEDATA"]._serialized_start = 6730 + _globals["_SPDATAFRAMEDATA"]._serialized_end = 6955 + _globals["_SPDATAFRAMEDATA_LIST"]._serialized_start = 6957 + _globals["_SPDATAFRAMEDATA_LIST"]._serialized_end = 7002 + _globals["_SPDATAFRAMEDATA_TUPLE"]._serialized_start = 7004 + _globals["_SPDATAFRAMEDATA_TUPLE"]._serialized_end = 7050 + _globals["_SPDATAFRAMEDATA_PANDAS"]._serialized_start = 7052 + _globals["_SPDATAFRAMEDATA_PANDAS"]._serialized_end = 7115 + _globals["_SPDATAFRAMESCHEMA"]._serialized_start = 7118 + _globals["_SPDATAFRAMESCHEMA"]._serialized_end = 7289 + _globals["_SPDATAFRAMESCHEMA_LIST"]._serialized_start = 7291 + _globals["_SPDATAFRAMESCHEMA_LIST"]._serialized_end = 7327 + _globals["_SPDATAFRAMESCHEMA_STRUCT"]._serialized_start = 7329 + _globals["_SPDATAFRAMESCHEMA_STRUCT"]._serialized_end = 7385 + _globals["_SPCALLABLE"]._serialized_start = 7387 + _globals["_SPCALLABLE"]._serialized_end = 7425 + _globals["_SPPIVOTVALUE"]._serialized_start = 7428 + _globals["_SPPIVOTVALUE"]._serialized_end = 7580 + _globals["_SPPIVOTVALUE_EXPR"]._serialized_start = 7582 + _globals["_SPPIVOTVALUE_EXPR"]._serialized_end = 7623 + _globals["_SPPIVOTVALUE_DATAFRAME"]._serialized_start = 7625 + _globals["_SPPIVOTVALUE_DATAFRAME"]._serialized_end = 7681 + _globals["_SRCPOSITION"]._serialized_start = 7683 + _globals["_SRCPOSITION"]._serialized_end = 7790 + _globals["_VARID"]._serialized_start = 7792 + _globals["_VARID"]._serialized_end = 7818 + _globals["_REQUEST"]._serialized_start = 7821 + _globals["_REQUEST"]._serialized_end = 7961 + _globals["_RESPONSE"]._serialized_start = 7963 + _globals["_RESPONSE"]._serialized_end = 8000 + _globals["_CONST"]._serialized_start = 8003 + _globals["_CONST"]._serialized_end = 8737 + _globals["_NONEVAL"]._serialized_start = 8739 + _globals["_NONEVAL"]._serialized_end = 8779 + _globals["_NULLVAL"]._serialized_start = 8781 + _globals["_NULLVAL"]._serialized_end = 8821 + _globals["_BOOLVAL"]._serialized_start = 8823 + _globals["_BOOLVAL"]._serialized_end = 8874 + _globals["_INT32VAL"]._serialized_start = 8876 + _globals["_INT32VAL"]._serialized_end = 8928 + _globals["_INT64VAL"]._serialized_start = 8930 + _globals["_INT64VAL"]._serialized_end = 8982 + _globals["_FLOAT64VAL"]._serialized_start = 8984 + _globals["_FLOAT64VAL"]._serialized_end = 9038 + _globals["_BIGINTVAL"]._serialized_start = 9040 + _globals["_BIGINTVAL"]._serialized_end = 9093 + _globals["_BIGDECIMALVAL"]._serialized_start = 9095 + _globals["_BIGDECIMALVAL"]._serialized_end = 9180 + _globals["_STRINGVAL"]._serialized_start = 9182 + _globals["_STRINGVAL"]._serialized_end = 9235 + _globals["_BINARYVAL"]._serialized_start = 9237 + _globals["_BINARYVAL"]._serialized_end = 9290 + _globals["_TIMESTAMPVAL"]._serialized_start = 9292 + _globals["_TIMESTAMPVAL"]._serialized_end = 9348 + _globals["_DATEVAL"]._serialized_start = 9350 + _globals["_DATEVAL"]._serialized_end = 9401 + _globals["_TIMEVAL"]._serialized_start = 9403 + _globals["_TIMEVAL"]._serialized_end = 9454 + _globals["_PYTHONTIMESTAMPVAL"]._serialized_start = 9457 + _globals["_PYTHONTIMESTAMPVAL"]._serialized_end = 9650 + _globals["_PYTHONDATEVAL"]._serialized_start = 9652 + _globals["_PYTHONDATEVAL"]._serialized_end = 9740 + _globals["_PYTHONTIMEVAL"]._serialized_start = 9743 + _globals["_PYTHONTIMEVAL"]._serialized_end = 9889 + _globals["_FNVAL"]._serialized_start = 9891 + _globals["_FNVAL"]._serialized_end = 9970 + _globals["_SPDATATYPEVAL"]._serialized_start = 9972 + _globals["_SPDATATYPEVAL"]._serialized_end = 10053 + _globals["_IFEXPR"]._serialized_start = 10055 + _globals["_IFEXPR"]._serialized_end = 10176 + _globals["_SOMEVAL"]._serialized_start = 10178 + _globals["_SOMEVAL"]._serialized_end = 10240 + _globals["_TUPLEVAL"]._serialized_start = 10242 + _globals["_TUPLEVAL"]._serialized_end = 10306 + _globals["_LISTVAL"]._serialized_start = 10308 + _globals["_LISTVAL"]._serialized_end = 10371 + _globals["_SEQMAPVAL"]._serialized_start = 10373 + _globals["_SEQMAPVAL"]._serialized_end = 10443 + _globals["_APPLYEXPR"]._serialized_start = 10446 + _globals["_APPLYEXPR"]._serialized_end = 10589 + _globals["_FNREFEXPR"]._serialized_start = 10592 + _globals["_FNREFEXPR"]._serialized_end = 10845 + _globals["_SPFNREF"]._serialized_start = 10847 + _globals["_SPFNREF"]._serialized_end = 10938 + _globals["_BUILTINFN"]._serialized_start = 10940 + _globals["_BUILTINFN"]._serialized_end = 11009 + _globals["_STOREDPROCEDURE"]._serialized_start = 11012 + _globals["_STOREDPROCEDURE"]._serialized_end = 11191 + _globals["_UDF"]._serialized_start = 11194 + _globals["_UDF"]._serialized_end = 11879 + _globals["_SESSIONTABLEFN"]._serialized_start = 11881 + _globals["_SESSIONTABLEFN"]._serialized_end = 11955 + _globals["_TABLEFN"]._serialized_start = 11957 + _globals["_TABLEFN"]._serialized_end = 12065 + _globals["_UNARYOP"]._serialized_start = 12067 + _globals["_UNARYOP"]._serialized_end = 12137 + _globals["_BINOP"]._serialized_start = 12140 + _globals["_BINOP"]._serialized_end = 12594 + _globals["_NOT"]._serialized_start = 12596 + _globals["_NOT"]._serialized_end = 12660 + _globals["_AND"]._serialized_start = 12662 + _globals["_AND"]._serialized_end = 12746 + _globals["_OR"]._serialized_start = 12748 + _globals["_OR"]._serialized_end = 12831 + _globals["_EQ"]._serialized_start = 12833 + _globals["_EQ"]._serialized_end = 12916 + _globals["_NEQ"]._serialized_start = 12918 + _globals["_NEQ"]._serialized_end = 13002 + _globals["_LT"]._serialized_start = 13004 + _globals["_LT"]._serialized_end = 13087 + _globals["_LEQ"]._serialized_start = 13089 + _globals["_LEQ"]._serialized_end = 13173 + _globals["_GT"]._serialized_start = 13175 + _globals["_GT"]._serialized_end = 13258 + _globals["_GEQ"]._serialized_start = 13260 + _globals["_GEQ"]._serialized_end = 13344 + _globals["_NEG"]._serialized_start = 13346 + _globals["_NEG"]._serialized_end = 13410 + _globals["_ADD"]._serialized_start = 13412 + _globals["_ADD"]._serialized_end = 13496 + _globals["_SUB"]._serialized_start = 13498 + _globals["_SUB"]._serialized_end = 13582 + _globals["_MUL"]._serialized_start = 13584 + _globals["_MUL"]._serialized_end = 13668 + _globals["_DIV"]._serialized_start = 13670 + _globals["_DIV"]._serialized_end = 13754 + _globals["_MOD"]._serialized_start = 13756 + _globals["_MOD"]._serialized_end = 13840 + _globals["_POW"]._serialized_start = 13842 + _globals["_POW"]._serialized_end = 13926 + _globals["_BITAND"]._serialized_start = 13928 + _globals["_BITAND"]._serialized_end = 14015 + _globals["_BITOR"]._serialized_start = 14017 + _globals["_BITOR"]._serialized_end = 14103 + _globals["_BITXOR"]._serialized_start = 14105 + _globals["_BITXOR"]._serialized_end = 14192 + _globals["_RANGEVAL"]._serialized_start = 14194 + _globals["_RANGEVAL"]._serialized_end = 14311 + _globals["_SPWINDOWSPECEXPR"]._serialized_start = 14314 + _globals["_SPWINDOWSPECEXPR"]._serialized_end = 14669 + _globals["_SPWINDOWSPECEMPTY"]._serialized_start = 14671 + _globals["_SPWINDOWSPECEMPTY"]._serialized_end = 14757 + _globals["_SPWINDOWSPECORDERBY"]._serialized_start = 14759 + _globals["_SPWINDOWSPECORDERBY"]._serialized_end = 14872 + _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_start = 14874 + _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_end = 14991 + _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_start = 14994 + _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_end = 15177 + _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_start = 15180 + _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_end = 15362 + _globals["_EXPR"]._serialized_start = 15365 + _globals["_EXPR"]._serialized_end = 25684 + _globals["_REF"]._serialized_start = 25686 + _globals["_REF"]._serialized_end = 25750 + _globals["_CASTEXPR"]._serialized_start = 25752 + _globals["_CASTEXPR"]._serialized_end = 25839 + _globals["_PDDATAFRAME"]._serialized_start = 25842 + _globals["_PDDATAFRAME"]._serialized_end = 25991 + _globals["_PDDROPNA"]._serialized_start = 25994 + _globals["_PDDROPNA"]._serialized_end = 26136 + _globals["_PDDATAFRAMEGETITEM"]._serialized_start = 26138 + _globals["_PDDATAFRAMEGETITEM"]._serialized_end = 26239 + _globals["_PDDATAFRAMESETITEM"]._serialized_start = 26241 + _globals["_PDDATAFRAMESETITEM"]._serialized_end = 26364 + _globals["_PDDATAFRAMELOC"]._serialized_start = 26366 + _globals["_PDDATAFRAMELOC"]._serialized_end = 26488 + _globals["_PDDATAFRAMEILOC"]._serialized_start = 26490 + _globals["_PDDATAFRAMEILOC"]._serialized_end = 26613 + _globals["_PDREPR"]._serialized_start = 26615 + _globals["_PDREPR"]._serialized_end = 26729 + _globals["_PDREPRRESULT"]._serialized_start = 26731 + _globals["_PDREPRRESULT"]._serialized_end = 26848 + _globals["_RESULT"]._serialized_start = 26851 + _globals["_RESULT"]._serialized_end = 27009 + _globals["_EVALRESULT"]._serialized_start = 27012 + _globals["_EVALRESULT"]._serialized_end = 27831 + _globals["_EVALOK"]._serialized_start = 27833 + _globals["_EVALOK"]._serialized_end = 27913 + _globals["_ERROR"]._serialized_start = 27915 + _globals["_ERROR"]._serialized_end = 28005 + _globals["_SESSIONRESETREQUIREDERROR"]._serialized_start = 28007 + _globals["_SESSIONRESETREQUIREDERROR"]._serialized_end = 28075 + _globals["_SPCOLUMNEXPR"]._serialized_start = 28078 + _globals["_SPCOLUMNEXPR"]._serialized_end = 28410 + _globals["_SPCOLUMNREF"]._serialized_start = 28412 + _globals["_SPCOLUMNREF"]._serialized_end = 28468 + _globals["_SPCOLUMNSQLEXPR"]._serialized_start = 28470 + _globals["_SPCOLUMNSQLEXPR"]._serialized_end = 28579 + _globals["_SPCASEEXPR"]._serialized_start = 28581 + _globals["_SPCASEEXPR"]._serialized_end = 28680 + _globals["_SPCOLUMNCASEWHEN"]._serialized_start = 28682 + _globals["_SPCOLUMNCASEWHEN"]._serialized_end = 28763 + _globals["_SPCOLUMNFN"]._serialized_start = 28766 + _globals["_SPCOLUMNFN"]._serialized_end = 30063 + _globals["_SPCOLUMNALIAS"]._serialized_start = 30066 + _globals["_SPCOLUMNALIAS"]._serialized_end = 30201 + _globals["_SPCOLUMNAPPLY_INT"]._serialized_start = 30203 + _globals["_SPCOLUMNAPPLY_INT"]._serialized_end = 30290 + _globals["_SPCOLUMNAPPLY_STRING"]._serialized_start = 30292 + _globals["_SPCOLUMNAPPLY_STRING"]._serialized_end = 30384 + _globals["_SPCOLUMNASC"]._serialized_start = 30386 + _globals["_SPCOLUMNASC"]._serialized_end = 30503 + _globals["_SPCOLUMNBETWEEN"]._serialized_start = 30506 + _globals["_SPCOLUMNBETWEEN"]._serialized_end = 30642 + _globals["_SPCOLUMNCAST"]._serialized_start = 30644 + _globals["_SPCOLUMNCAST"]._serialized_end = 30742 + _globals["_SPCOLUMNTRYCAST"]._serialized_start = 30744 + _globals["_SPCOLUMNTRYCAST"]._serialized_end = 30845 + _globals["_SPCOLUMNDESC"]._serialized_start = 30847 + _globals["_SPCOLUMNDESC"]._serialized_end = 30965 + _globals["_SPCOLUMNEQUALNAN"]._serialized_start = 30967 + _globals["_SPCOLUMNEQUALNAN"]._serialized_end = 31040 + _globals["_SPCOLUMNEQUALNULL"]._serialized_start = 31042 + _globals["_SPCOLUMNEQUALNULL"]._serialized_end = 31140 + _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_start = 31142 + _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_end = 31253 + _globals["_SPCOLUMNIN_SEQ"]._serialized_start = 31255 + _globals["_SPCOLUMNIN_SEQ"]._serialized_end = 31353 + _globals["_SPCOLUMNISNOTNULL"]._serialized_start = 31355 + _globals["_SPCOLUMNISNOTNULL"]._serialized_end = 31429 + _globals["_SPCOLUMNISNULL"]._serialized_start = 31431 + _globals["_SPCOLUMNISNULL"]._serialized_end = 31502 + _globals["_SPCOLUMNNAME"]._serialized_start = 31504 + _globals["_SPCOLUMNNAME"]._serialized_end = 31588 + _globals["_SPCOLUMNOVER"]._serialized_start = 31590 + _globals["_SPCOLUMNOVER"]._serialized_end = 31703 + _globals["_SPCOLUMNWITHINGROUP"]._serialized_start = 31705 + _globals["_SPCOLUMNWITHINGROUP"]._serialized_end = 31813 + _globals["_SPCOLUMNSTRINGLIKE"]._serialized_start = 31815 + _globals["_SPCOLUMNSTRINGLIKE"]._serialized_end = 31918 + _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_start = 31921 + _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_end = 32057 + _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_start = 32059 + _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_end = 32167 + _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_start = 32169 + _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_end = 32275 + _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_start = 32277 + _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_end = 32402 + _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_start = 32404 + _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_end = 32517 + _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_start = 32519 + _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_end = 32626 + _globals["_SPDATAFRAMEEXPR"]._serialized_start = 32629 + _globals["_SPDATAFRAMEEXPR"]._serialized_end = 37159 + _globals["_SPDATAFRAMEREF"]._serialized_start = 37161 + _globals["_SPDATAFRAMEREF"]._serialized_end = 37232 + _globals["_SPDATAFRAMESHOW"]._serialized_start = 37234 + _globals["_SPDATAFRAMESHOW"]._serialized_end = 37306 + _globals["_SPDATAFRAMECOUNT"]._serialized_start = 37309 + _globals["_SPDATAFRAMECOUNT"]._serialized_end = 37449 + _globals["_SPDATAFRAMECOLLECT"]._serialized_start = 37452 + _globals["_SPDATAFRAMECOLLECT"]._serialized_end = 37661 + _globals["_SPCREATEDATAFRAME"]._serialized_start = 37663 + _globals["_SPCREATEDATAFRAME"]._serialized_end = 37789 + _globals["_SPWRITEPANDAS"]._serialized_start = 37792 + _globals["_SPWRITEPANDAS"]._serialized_end = 38176 + _globals["_SPFLATTEN"]._serialized_start = 38179 + _globals["_SPFLATTEN"]._serialized_end = 38359 + _globals["_SPGENERATOR"]._serialized_start = 38362 + _globals["_SPGENERATOR"]._serialized_end = 38499 + _globals["_SPRANGE"]._serialized_start = 38502 + _globals["_SPRANGE"]._serialized_end = 38642 + _globals["_SPSQL"]._serialized_start = 38644 + _globals["_SPSQL"]._serialized_end = 38724 + _globals["_SPSTOREDPROCEDURE"]._serialized_start = 38726 + _globals["_SPSTOREDPROCEDURE"]._serialized_end = 38841 + _globals["_SPTABLE"]._serialized_start = 38844 + _globals["_SPTABLE"]._serialized_end = 38989 + _globals["_SPTABLEFUNCTION"]._serialized_start = 38991 + _globals["_SPTABLEFUNCTION"]._serialized_end = 39115 + _globals["_SPDATAFRAMETODF"]._serialized_start = 39117 + _globals["_SPDATAFRAMETODF"]._serialized_end = 39236 + _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_start = 39239 + _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_end = 39374 + _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_start = 39377 + _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_end = 39560 + _globals["_SPDATAFRAMENAFILL"]._serialized_start = 39563 + _globals["_SPDATAFRAMENAFILL"]._serialized_end = 39748 + _globals["_SPDATAFRAMENAREPLACE"]._serialized_start = 39751 + _globals["_SPDATAFRAMENAREPLACE"]._serialized_end = 40053 + _globals["_SPDATAFRAMEAGG"]._serialized_start = 40055 + _globals["_SPDATAFRAMEAGG"]._serialized_end = 40169 + _globals["_SPDATAFRAMEALIAS"]._serialized_start = 40171 + _globals["_SPDATAFRAMEALIAS"]._serialized_end = 40268 + _globals["_SPDATAFRAMEAPPLY"]._serialized_start = 40270 + _globals["_SPDATAFRAMEAPPLY"]._serialized_end = 40371 + _globals["_SPDATAFRAMECOL"]._serialized_start = 40373 + _globals["_SPDATAFRAMECOL"]._serialized_end = 40472 + _globals["_SPDATAFRAMECROSSJOIN"]._serialized_start = 40475 + _globals["_SPDATAFRAMECROSSJOIN"]._serialized_end = 40692 + _globals["_SPDATAFRAMECUBE"]._serialized_start = 40694 + _globals["_SPDATAFRAMECUBE"]._serialized_end = 40808 + _globals["_SPDATAFRAMEDESCRIBE"]._serialized_start = 40810 + _globals["_SPDATAFRAMEDESCRIBE"]._serialized_end = 40928 + _globals["_SPDATAFRAMEDISTINCT"]._serialized_start = 40930 + _globals["_SPDATAFRAMEDISTINCT"]._serialized_end = 41016 + _globals["_SPDATAFRAMEDROP"]._serialized_start = 41018 + _globals["_SPDATAFRAMEDROP"]._serialized_end = 41132 + _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_start = 41134 + _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_end = 41258 + _globals["_SPDATAFRAMEEXCEPT"]._serialized_start = 41260 + _globals["_SPDATAFRAMEEXCEPT"]._serialized_end = 41381 + _globals["_SPDATAFRAMEFILTER"]._serialized_start = 41383 + _globals["_SPDATAFRAMEFILTER"]._serialized_end = 41497 + _globals["_SPDATAFRAMEFLATTEN"]._serialized_start = 41500 + _globals["_SPDATAFRAMEFLATTEN"]._serialized_end = 41723 + _globals["_SPDATAFRAMEFIRST"]._serialized_start = 41726 + _globals["_SPDATAFRAMEFIRST"]._serialized_end = 41889 + _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_start = 41892 + _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_end = 42036 + _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_start = 42038 + _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_end = 42163 + _globals["_SPDATAFRAMEGROUPBY"]._serialized_start = 42165 + _globals["_SPDATAFRAMEGROUPBY"]._serialized_end = 42282 + _globals["_SPDATAFRAMEINTERSECT"]._serialized_start = 42284 + _globals["_SPDATAFRAMEINTERSECT"]._serialized_end = 42408 + _globals["_SPDATAFRAMEJOIN"]._serialized_start = 42411 + _globals["_SPDATAFRAMEJOIN"]._serialized_end = 42725 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_start = 42728 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_end = 42998 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_start = 43001 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_end = 43277 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_start = 43280 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_end = 43496 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_start = 43499 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_end = 43735 + _globals["_SPDATAFRAMELIMIT"]._serialized_start = 43737 + _globals["_SPDATAFRAMELIMIT"]._serialized_end = 43847 + _globals["_SPDATAFRAMENATURALJOIN"]._serialized_start = 43850 + _globals["_SPDATAFRAMENATURALJOIN"]._serialized_end = 44011 + _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_start = 44014 + _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_end = 44177 + _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_start = 44180 + _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_end = 44324 + _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_start = 44327 + _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_end = 44528 + _globals["_SPDATAFRAMERENAME"]._serialized_start = 44531 + _globals["_SPDATAFRAMERENAME"]._serialized_end = 44699 + _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_start = 44702 + _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_end = 44845 + _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_start = 44847 + _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_end = 44971 + _globals["_SPDATAFRAMEROLLUP"]._serialized_start = 44973 + _globals["_SPDATAFRAMEROLLUP"]._serialized_end = 45089 + _globals["_SPDATAFRAMESAMPLE"]._serialized_start = 45092 + _globals["_SPDATAFRAMESAMPLE"]._serialized_end = 45278 + _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_start = 45281 + _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_end = 45416 + _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_start = 45418 + _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_end = 45541 + _globals["_SPDATAFRAMESORT"]._serialized_start = 45544 + _globals["_SPDATAFRAMESORT"]._serialized_end = 45704 + _globals["_SPDATAFRAMEUNION"]._serialized_start = 45706 + _globals["_SPDATAFRAMEUNION"]._serialized_end = 45826 + _globals["_SPDATAFRAMEUNIONALL"]._serialized_start = 45828 + _globals["_SPDATAFRAMEUNIONALL"]._serialized_end = 45951 + _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_start = 45954 + _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_end = 46083 + _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_start = 46085 + _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_end = 46211 + _globals["_SPDATAFRAMEWHERE"]._serialized_start = 46213 + _globals["_SPDATAFRAMEWHERE"]._serialized_end = 46334 + _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_start = 46337 + _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_end = 46467 + _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_start = 46470 + _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_end = 46607 + _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_start = 46610 + _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_end = 46745 + _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_start = 46748 + _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_end = 46907 + _globals["_SPGROUPINGSETS"]._serialized_start = 46909 + _globals["_SPGROUPINGSETS"]._serialized_end = 46988 + _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_start = 46991 + _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_end = 47219 + _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_start = 47222 + _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_end = 47452 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_start = 47455 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_end = 47656 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_start = 47659 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_end = 47862 + _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_start = 47865 + _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_end = 48118 + _globals["_SPDATAFRAMEREADER"]._serialized_start = 48121 + _globals["_SPDATAFRAMEREADER"]._serialized_end = 48502 + _globals["_SPDATAFRAMEREADERINIT"]._serialized_start = 48504 + _globals["_SPDATAFRAMEREADERINIT"]._serialized_end = 48558 + _globals["_SPDATAFRAMEREADEROPTION"]._serialized_start = 48561 + _globals["_SPDATAFRAMEREADEROPTION"]._serialized_end = 48696 + _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_start = 48699 + _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_end = 48837 + _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_start = 48840 + _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_end = 48971 + _globals["_SPDATAFRAMEREADERWITHMETADATA"]._serialized_start = 48974 + _globals["_SPDATAFRAMEREADERWITHMETADATA"]._serialized_end = 49120 + _globals["_SPREADTABLE"]._serialized_start = 49122 + _globals["_SPREADTABLE"]._serialized_end = 49238 + _globals["_SPREADCSV"]._serialized_start = 49240 + _globals["_SPREADCSV"]._serialized_end = 49336 + _globals["_SPREADJSON"]._serialized_start = 49338 + _globals["_SPREADJSON"]._serialized_end = 49435 + _globals["_SPREADAVRO"]._serialized_start = 49437 + _globals["_SPREADAVRO"]._serialized_end = 49534 + _globals["_SPREADORC"]._serialized_start = 49536 + _globals["_SPREADORC"]._serialized_end = 49632 + _globals["_SPREADPARQUET"]._serialized_start = 49634 + _globals["_SPREADPARQUET"]._serialized_end = 49734 + _globals["_SPREADXML"]._serialized_start = 49736 + _globals["_SPREADXML"]._serialized_end = 49832 + _globals["_SPDATAFRAMEWRITER"]._serialized_start = 49835 + _globals["_SPDATAFRAMEWRITER"]._serialized_end = 50316 + _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_start = 50318 + _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_end = 50373 + _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_start = 50375 + _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_end = 50429 + _globals["_SPDATAFRAMEWRITE"]._serialized_start = 50431 + _globals["_SPDATAFRAMEWRITE"]._serialized_end = 50550 + _globals["_SPWRITEFILE"]._serialized_start = 50553 + _globals["_SPWRITEFILE"]._serialized_end = 50779 + _globals["_SPWRITECSV"]._serialized_start = 50782 + _globals["_SPWRITECSV"]._serialized_end = 51084 + _globals["_SPWRITEJSON"]._serialized_start = 51087 + _globals["_SPWRITEJSON"]._serialized_end = 51390 + _globals["_SPWRITEPARQUET"]._serialized_start = 51393 + _globals["_SPWRITEPARQUET"]._serialized_end = 51699 + _globals["_SPWRITETABLE"]._serialized_start = 51702 + _globals["_SPWRITETABLE"]._serialized_end = 52064 + _globals["_SPWRITECOPYINTOLOCATION"]._serialized_start = 52067 + _globals["_SPWRITECOPYINTOLOCATION"]._serialized_end = 52494 + _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_start = 52497 + _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_end = 52724 + _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_start = 52727 + _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_end = 52977 + _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_start = 52980 + _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_end = 53419 + _globals["_SPDATAFRAMECACHERESULT"]._serialized_start = 53422 + _globals["_SPDATAFRAMECACHERESULT"]._serialized_end = 53563 + _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_start = 53566 + _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_end = 53749 + _globals["_SPDATAFRAMESTATCORR"]._serialized_start = 53752 + _globals["_SPDATAFRAMESTATCORR"]._serialized_end = 53930 + _globals["_SPDATAFRAMESTATCOV"]._serialized_start = 53933 + _globals["_SPDATAFRAMESTATCOV"]._serialized_end = 54110 + _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_start = 54113 + _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_end = 54295 + _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_start = 54298 + _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_end = 54454 + _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_start = 54457 + _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_end = 55265 + _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_start = 55267 + _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_end = 55355 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_start = 55358 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_end = 55514 + _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_start = 55517 + _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_end = 55694 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAPPLYINPANDAS"]._serialized_start = 55697 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAPPLYINPANDAS"]._serialized_end = 55943 + _globals["_SPRELATIONALGROUPEDDATAFRAMEPIVOT"]._serialized_start = 55946 + _globals["_SPRELATIONALGROUPEDDATAFRAMEPIVOT"]._serialized_end = 56172 + _globals["_SPROW"]._serialized_start = 56174 + _globals["_SPROW"]._serialized_end = 56268 + _globals["_EXPRARGLIST"]._serialized_start = 56270 + _globals["_EXPRARGLIST"]._serialized_end = 56326 + _globals["_SPDATAFRAMETYPE"]._serialized_start = 56328 + _globals["_SPDATAFRAMETYPE"]._serialized_end = 56386 + _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_start = 56388 + _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_end = 56458 + _globals["_SPWINDOWTYPE"]._serialized_start = 56460 + _globals["_SPWINDOWTYPE"]._serialized_end = 56474 + _globals["_SPCOLEXPRTYPE"]._serialized_start = 56476 + _globals["_SPCOLEXPRTYPE"]._serialized_end = 56515 + _globals["_HASSRCPOSITION"]._serialized_start = 56518 + _globals["_HASSRCPOSITION"]._serialized_end = 67733 + _globals["_STMT"]._serialized_start = 67735 + _globals["_STMT"]._serialized_end = 67810 + _globals["_ASSIGN"]._serialized_start = 67812 + _globals["_ASSIGN"]._serialized_end = 67932 + _globals["_EVAL"]._serialized_start = 67934 + _globals["_EVAL"]._serialized_end = 67981 + _globals["_TYPE"]._serialized_start = 67984 + _globals["_TYPE"]._serialized_end = 68944 + _globals["_UNKNOWNTYPE"]._serialized_start = 68946 + _globals["_UNKNOWNTYPE"]._serialized_end = 68959 + _globals["_ANYTYPE"]._serialized_start = 68961 + _globals["_ANYTYPE"]._serialized_end = 68970 + _globals["_SCALARTYPE"]._serialized_start = 68973 + _globals["_SCALARTYPE"]._serialized_end = 69274 + _globals["_NUMERICTYPE"]._serialized_start = 69277 + _globals["_NUMERICTYPE"]._serialized_end = 69459 + _globals["_NUMBERTYPE"]._serialized_start = 69461 + _globals["_NUMBERTYPE"]._serialized_end = 69473 + _globals["_NOTHINGTYPE"]._serialized_start = 69475 + _globals["_NOTHINGTYPE"]._serialized_end = 69488 + _globals["_UNITTYPE"]._serialized_start = 69490 + _globals["_UNITTYPE"]._serialized_end = 69500 + _globals["_BOOLTYPE"]._serialized_start = 69502 + _globals["_BOOLTYPE"]._serialized_end = 69512 + _globals["_INT32TYPE"]._serialized_start = 69514 + _globals["_INT32TYPE"]._serialized_end = 69525 + _globals["_INT64TYPE"]._serialized_start = 69527 + _globals["_INT64TYPE"]._serialized_end = 69538 + _globals["_FLOAT64TYPE"]._serialized_start = 69540 + _globals["_FLOAT64TYPE"]._serialized_end = 69553 + _globals["_STRINGTYPE"]._serialized_start = 69555 + _globals["_STRINGTYPE"]._serialized_end = 69567 + _globals["_PDREPRTYPE"]._serialized_start = 69569 + _globals["_PDREPRTYPE"]._serialized_end = 69581 + _globals["_FNTYPE"]._serialized_start = 69583 + _globals["_FNTYPE"]._serialized_end = 69642 + _globals["_OPTIONTYPE"]._serialized_start = 69644 + _globals["_OPTIONTYPE"]._serialized_end = 69680 + _globals["_TUPLETYPE"]._serialized_start = 69682 + _globals["_TUPLETYPE"]._serialized_end = 69717 + _globals["_LISTTYPE"]._serialized_start = 69719 + _globals["_LISTTYPE"]._serialized_end = 69753 + _globals["_MAPTYPE"]._serialized_start = 69755 + _globals["_MAPTYPE"]._serialized_end = 69808 + _globals["_TYVAR"]._serialized_start = 69810 + _globals["_TYVAR"]._serialized_end = 69829 # @@protoc_insertion_point(module_scope) diff --git a/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh b/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh index 8b05a26eed8..3f4dbbec21c 100755 --- a/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh +++ b/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh @@ -27,6 +27,8 @@ set -euxo pipefail SCRIPT_DIR=$(dirname "$0") +# Note: If changes are not reflected, run `bazel clean --expunge` first. + # Step 1: Build the python proto file from scratch via bazel ssh $HOST "bash -c 'cd Snowflake/trunk;bazel build //Snowpark:ast && bazel build //Snowpark:py_proto'" diff --git a/src/snowflake/snowpark/_internal/udf_utils.py b/src/snowflake/snowpark/_internal/udf_utils.py index b79fcdcf9c9..8ed1de526db 100644 --- a/src/snowflake/snowpark/_internal/udf_utils.py +++ b/src/snowflake/snowpark/_internal/udf_utils.py @@ -397,7 +397,7 @@ def build_default_values_result( input_types: List[DataType], convert_python_str_to_object: bool, ) -> List[Optional[str]]: - num_optional_args = len(default_values) + num_optional_args = len(default_values) if default_values is not None else 0 num_positional_args = len(input_types) - num_optional_args input_types_for_default_args = input_types[-num_optional_args:] if convert_python_str_to_object: @@ -406,10 +406,13 @@ def build_default_values_result( for value, tp in zip(default_values, input_types_for_default_args) ] - default_values_to_sql_str = [ - to_sql(value, datatype) - for value, datatype in zip(default_values, input_types_for_default_args) - ] + if num_optional_args != 0: + default_values_to_sql_str = [ + to_sql(value, datatype) + for value, datatype in zip(default_values, input_types_for_default_args) + ] + else: + default_values_to_sql_str = [] return [None] * num_positional_args + default_values_to_sql_str def get_opt_arg_defaults_from_callable(): diff --git a/src/snowflake/snowpark/dataframe.py b/src/snowflake/snowpark/dataframe.py index dcc5063bb52..e785a35dae7 100644 --- a/src/snowflake/snowpark/dataframe.py +++ b/src/snowflake/snowpark/dataframe.py @@ -5149,6 +5149,10 @@ def _with_plan(self, plan, ast_stmt=None) -> "DataFrame": """ df = DataFrame(self._session, plan, ast_stmt=ast_stmt) df._statement_params = self._statement_params + + if ast_stmt is not None: + df._ast_id = ast_stmt.var_id.bitfield1 + return df def _get_column_names_from_column_or_name_list( diff --git a/src/snowflake/snowpark/functions.py b/src/snowflake/snowpark/functions.py index 3b677394630..adc8ba67189 100644 --- a/src/snowflake/snowpark/functions.py +++ b/src/snowflake/snowpark/functions.py @@ -189,7 +189,6 @@ build_expr_from_snowpark_column_or_python_val, build_expr_from_snowpark_column_or_sql_str, build_table_fn_apply, - build_udf_apply, create_ast_for_column, set_builtin_fn_alias, snowpark_expression_to_ast, @@ -7333,6 +7332,7 @@ def udf( secrets: Optional[Dict[str, str]] = None, immutable: bool = False, comment: Optional[str] = None, + _emit_ast: bool = True, **kwargs, ) -> Union[UserDefinedFunction, functools.partial]: """Registers a Python function as a Snowflake Python UDF and returns the UDF. @@ -7494,6 +7494,7 @@ def udf( session = snowflake.snowpark.session._get_sandbox_conditional_active_session( session ) + if session is None: udf_registration_method = UDFRegistration(session=session).register else: @@ -7521,6 +7522,7 @@ def udf( secrets=secrets, immutable=immutable, comment=comment, + _emit_ast=_emit_ast, **kwargs, ) else: @@ -7545,6 +7547,7 @@ def udf( secrets=secrets, immutable=immutable, comment=comment, + _emit_ast=_emit_ast, **kwargs, ) @@ -8321,10 +8324,7 @@ def pandas_udtf( ) -def call_udf( - udf_name: str, - *args: ColumnOrLiteral, -) -> Column: +def call_udf(udf_name: str, *args: ColumnOrLiteral, _emit_ast: bool = True) -> Column: """Calls a user-defined function (UDF) by name. Args: @@ -8346,13 +8346,36 @@ def call_udf( ------------------------------- <BLANKLINE> """ - # AST - ast = proto.Expr() - build_udf_apply(ast, udf_name, *args) - validate_object_name(udf_name) + + ast = None + # AST. + if _emit_ast: + args_list = parse_positional_args_to_list(*args) + ast = proto.Expr() + # Note: The type hint says ColumnOrLiteral, but in Snowpark sometimes arbitrary + # Python objects are passed. + build_builtin_fn_apply( + ast, + "call_udf", + *( + (udf_name,) + + tuple( + snowpark_expression_to_ast(arg) + if isinstance(arg, Expression) + else arg + for arg in args_list + ) + ), + ) + return _call_function( - udf_name, False, *args, api_call_source="functions.call_udf", _ast=ast + udf_name, + False, + *args, + api_call_source="functions.call_udf", + _ast=ast, + _emit_ast=_emit_ast, ) @@ -8479,11 +8502,12 @@ def _call_function( api_call_source: Optional[str] = None, is_data_generator: bool = False, _ast: proto.Expr = None, + _emit_ast: bool = True, ) -> Column: args_list = parse_positional_args_to_list(*args) ast = _ast - if ast is None: + if ast is None and _emit_ast: ast = proto.Expr() # Note: The type hint says ColumnOrLiteral, but in Snowpark sometimes arbitrary # Python objects are passed. @@ -8506,6 +8530,7 @@ def _call_function( is_data_generator=is_data_generator, ), ast=ast, + _emit_ast=_emit_ast, ) diff --git a/src/snowflake/snowpark/mock/_udf.py b/src/snowflake/snowpark/mock/_udf.py index 7cedf0de660..8677ee903fd 100644 --- a/src/snowflake/snowpark/mock/_udf.py +++ b/src/snowflake/snowpark/mock/_udf.py @@ -4,6 +4,7 @@ from types import ModuleType from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union +from snowflake.snowpark._internal.ast_utils import build_udf, with_src_position from snowflake.snowpark._internal.udf_utils import ( check_python_runtime_version, process_registration_inputs, @@ -105,7 +106,41 @@ def _do_register_udf( skip_upload_on_content_match: bool = False, is_permanent: bool = False, native_app_params: Optional[Dict[str, Any]] = None, + _emit_ast: bool = True, + **kwargs, ) -> UserDefinedFunction: + + ast = None + stmt = None + if _emit_ast: + stmt = self._session._ast_batch.assign() + ast = with_src_position(stmt.expr.udf, stmt) + build_udf( + ast, + func, + return_type, + input_types, + name, + stage_location, + imports, + packages, + replace, + if_not_exists, + parallel, + max_batch_size, + strict, + secure, + external_access_integrations, + secrets, + immutable, + comment, + statement_params=statement_params, + source_code_display=source_code_display, + is_permanent=is_permanent, + session=self._session, + **kwargs, + ) + if is_permanent: self._session._conn.log_not_supported_error( external_feature_name="udf", @@ -148,7 +183,10 @@ def _do_register_udf( raise ValueError("options replace and if_not_exists are incompatible") if udf_name in self._registry and if_not_exists: - return self._registry[udf_name] + ans = self._registry[udf_name] + ans._ast = ast + ans._ast_id = stmt.var_id.bitfield1 + return ans if udf_name in self._registry and not replace: raise SnowparkSQLException( @@ -168,6 +206,8 @@ def _do_register_udf( strict=strict, packages=packages, use_session_imports=imports is None, + _ast=ast, + _ast_id=stmt.var_id.bitfield1, ) if type(func) is tuple: # update file registration diff --git a/src/snowflake/snowpark/udf.py b/src/snowflake/snowpark/udf.py index 3c60bed2933..91149e61d58 100644 --- a/src/snowflake/snowpark/udf.py +++ b/src/snowflake/snowpark/udf.py @@ -19,8 +19,14 @@ from typing import Any, Callable, Dict, List, Optional, Tuple, Union import snowflake.snowpark +import snowflake.snowpark._internal.proto.ast_pb2 as proto from snowflake.connector import ProgrammingError from snowflake.snowpark._internal.analyzer.expression import Expression, SnowflakeUDF +from snowflake.snowpark._internal.ast_utils import ( + build_udf, + build_udf_apply, + with_src_position, +) from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages from snowflake.snowpark._internal.open_telemetry import ( open_telemetry_udf_context_manager, @@ -77,6 +83,8 @@ def __init__( name: str, is_return_nullable: bool = False, packages: Optional[List[Union[str, ModuleType]]] = None, + _ast: Optional[proto.Udf] = None, + _ast_id: Optional[int] = None, ) -> None: #: The Python function or a tuple containing the Python file path and the function name. self.func: Union[Callable, Tuple[str, str]] = func @@ -88,9 +96,12 @@ def __init__( self._is_return_nullable = is_return_nullable self._packages = packages + # If None, no ast will be emitted. Else, passed whenever udf is invoked. + self._ast = _ast + self._ast_id = _ast_id + def __call__( - self, - *cols: Union[ColumnOrName, Iterable[ColumnOrName]], + self, *cols: Union[ColumnOrName, Iterable[ColumnOrName]], _emit_ast: bool = True ) -> Column: if len(cols) >= 1 and isinstance(cols[0], (list, tuple)): warning( @@ -110,9 +121,15 @@ def __call__( f"The input of UDF {self.name} must be Column, column name, or a list of them" ) - raise NotImplementedError("TODO SNOW-1514712: support UDxFs") + udf_expr = None + if _emit_ast: + assert ( + self._ast is not None + ), "Need to ensure _emit_ast is True when registering UDF." + udf_expr = proto.Expr() + build_udf_apply(udf_expr, self._ast_id, *cols) - return Column(self._create_udf_expression(exprs)) + return Column(self._create_udf_expression(exprs), ast=udf_expr) def _create_udf_expression(self, exprs: List[Expression]) -> SnowflakeUDF: # len(exprs) can be less than len(self._input_types) if udf has @@ -510,6 +527,7 @@ def register( *, statement_params: Optional[Dict[str, str]] = None, source_code_display: bool = True, + _emit_ast: bool = True, **kwargs, ) -> UserDefinedFunction: """ @@ -639,6 +657,7 @@ def register( api_call_source="UDFRegistration.register" + ("[pandas_udf]" if _from_pandas else ""), is_permanent=is_permanent, + _emit_ast=_emit_ast, ) def register_from_file( @@ -665,6 +684,7 @@ def register_from_file( statement_params: Optional[Dict[str, str]] = None, source_code_display: bool = True, skip_upload_on_content_match: bool = False, + _emit_ast: bool = True, ) -> UserDefinedFunction: """ Registers a Python function as a Snowflake Python UDF from a Python or zip file, @@ -794,6 +814,7 @@ def register_from_file( api_call_source="UDFRegistration.register_from_file", skip_upload_on_content_match=skip_upload_on_content_match, is_permanent=is_permanent, + _emit_ast=_emit_ast, ) def _do_register_udf( @@ -823,7 +844,45 @@ def _do_register_udf( api_call_source: str, skip_upload_on_content_match: bool = False, is_permanent: bool = False, + _emit_ast: bool = True, + **kwargs, ) -> UserDefinedFunction: + + # AST. Capture original parameters, before any pre-processing. + ast = None + if _emit_ast: + stmt = self._session._ast_batch.assign() + ast = with_src_position(proto.Udf(), stmt) + build_udf( + ast, + func, + return_type, + input_types, + name, + stage_location, + imports, + packages, + replace, + if_not_exists, + parallel, + max_batch_size, + from_pandas_udf_function, + strict, + secure, + external_access_integrations, + secrets, + immutable, + comment, + native_app_params, + statement_params, + source_code_display, + api_call_source, + skip_upload_on_content_match, + is_permanent, + session=self._session, + **kwargs, + ) + # get the udf name, return and input types ( udf_name, @@ -928,6 +987,10 @@ def _do_register_udf( self._session, upload_file_stage_location, stage_location ) - return UserDefinedFunction( + udf = UserDefinedFunction( func, return_type, input_types, udf_name, packages=packages ) + + udf._ast = ast + + return udf diff --git a/tests/ast/conftest.py b/tests/ast/conftest.py index 3ff69ec8d7b..971710af4ef 100644 --- a/tests/ast/conftest.py +++ b/tests/ast/conftest.py @@ -7,7 +7,6 @@ import pytest from snowflake.snowpark import Session -from snowflake.snowpark.mock._connection import MockServerConnection def default_unparser_path(): @@ -41,7 +40,9 @@ def pytest_configure(config): @pytest.fixture(scope="function") def session(): - with Session(MockServerConnection()) as s: + # Note: Do NOT use Session(MockServerConnection()), as this doesn't setup the correct registrations throughout snowpark. + # Need to use the Session.builder to properly register this as active session etc. + with Session.builder.config("local_testing", True).create() as s: yield s diff --git a/tests/ast/data/col_udf.test b/tests/ast/data/col_udf.test new file mode 100644 index 00000000000..954fc6e5f2d --- /dev/null +++ b/tests/ast/data/col_udf.test @@ -0,0 +1,50 @@ +## TEST CASE + +from snowflake.snowpark.functions import col, udf + +from snowflake.snowpark.types import IntegerType, FloatType + +add_one = udf(lambda x: x + 1, return_type=IntegerType(), input_types=[IntegerType()]) + +df = session.create_dataframe([1, 2, 3], schema=["a"]) + +df.select(add_one(col("a")).as_("ans")).collect() + +# call_udf should be encoded as builtin applexpr. It only works for named (& permanently) registered udfs. + +add_two = udf(lambda x: x + 2, return_type=IntegerType(), input_types=[IntegerType()], name="add_two", replace=True) + +df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() + +param_udf = udf(lambda x, y: str(y + x**2), return_type=VariantType(), input_types=[IntegerType(), FloatType()], + name="param_udf", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], + replace=True, if_not_exists=False, parallel=8, max_batch_size=2, source_code_display=False, + strict=True, secure=True, external_access_integrations=["s3"], secrets={'a':'b', 'c':'d'}, + immutable=True, comment="some udf", force_inline_code=True) + +# Another test udf because if_not_exists and replace need to be xor. +param_udf2 = udf(lambda x, y: str(y + x**2), return_type=VariantType(), input_types=[IntegerType(), FloatType()], + name="param_udf2", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], + replace=False, if_not_exists=True, parallel=8, max_batch_size=2, source_code_display=False, + strict=True, secure=True, external_access_integrations=["s3"], secrets={'a':'b', 'c':'d'}, + immutable=True, comment="some udf", force_inline_code=True) + +df.select(param_udf(col("A"), col("A"))) + +## EXPECTED OUTPUT + +add_one = udf(<lambda>, return_type=IntegerType(), input_types=[IntegerType()]) + +df = session.create_dataframe([1, 2, 3], schema=["a"]) + +df.select(add_one(col("a")).as_("ans")).collect() + +add_two = udf(<lambda [1]>, return_type=IntegerType(), input_types=[IntegerType()], name="add_two", replace=True) + +df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() + +param_udf = udf(<lambda [2]>, return_type=VariantType(), input_types=[IntegerType()]FloatType()], name="param_udf", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], replace=True, parallel=8, max_batch_size=2, source_code_display=False, strict=True, secure=True, external_access_integrations=["s3"], secrets={"a": "b"}{"c": "d"}, immutable=True, comment="some udf") + +param_udf2 = udf(<lambda [3]>, return_type=VariantType(), input_types=[IntegerType()]FloatType()], name="param_udf2", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], if_not_exists=True, parallel=8, max_batch_size=2, source_code_display=False, strict=True, secure=True, external_access_integrations=["s3"], secrets={"a": "b"}{"c": "d"}, immutable=True, comment="some udf") + +res5 = df.select(param_udf(col("A"), col("A")))