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")))