diff --git a/dataframe_test.py b/dataframe_test.py new file mode 100644 index 0000000..1d0973d --- /dev/null +++ b/dataframe_test.py @@ -0,0 +1,39 @@ +from unittest import TestCase +from e6data_python_connector import Connection + +import logging + +logging.getLogger(__name__) +logging.basicConfig(level=logging.DEBUG) + +class TestDataFrame(TestCase): + def setUp(self) -> None: + self._host = "localhost" + self._catalog = "demogluecatalog" + self._database = "tpcds_1000_delta" + logging.debug('Trying to connect to engine') + self.e6x_connection = Connection( + host=self._host, + port=9001, + username='dummy@gmail.com', + password='Dummy@123', + database=self._database, + catalog=self._catalog + ) + logging.debug('Successfully connect to engine.') + + def disconnect(self): + self.e6x_connection.close() + self.assertFalse(self.e6x_connection.check_connection()) + + def tearDown(self) -> None: + self.disconnect() + + def test_table_creation(self): + try: + self._dataframe = self.e6x_connection.load_parquet('') + rows = self._dataframe.show() + for row in rows: + print(row) + except BaseException as e: + print(f"Exception :{e}") diff --git a/e6data_python_connector/__init__.py b/e6data_python_connector/__init__.py index b581537..619c6b5 100644 --- a/e6data_python_connector/__init__.py +++ b/e6data_python_connector/__init__.py @@ -1,3 +1,3 @@ -from e6data_python_connector.e6data_grpc import Connection, Cursor +from e6data_python_connector.e6data_grpc import Connection, Cursor, DataFrame -__all__ = ['Connection', 'Cursor'] +__all__ = ['Connection', 'Cursor','DataFrame'] diff --git a/e6data_python_connector/e6data_grpc.py b/e6data_python_connector/e6data_grpc.py index 52da3b4..4f6fe84 100644 --- a/e6data_python_connector/e6data_grpc.py +++ b/e6data_python_connector/e6data_grpc.py @@ -15,6 +15,7 @@ from decimal import Decimal from io import BytesIO from ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED +from typing import overload import grpc from grpc._channel import _InactiveRpcError @@ -24,6 +25,7 @@ from e6data_python_connector.constants import * from e6data_python_connector.datainputstream import get_query_columns_info, read_rows_from_chunk from e6data_python_connector.server import e6x_engine_pb2_grpc, e6x_engine_pb2 +from e6data_python_connector.server.e6x_engine_pb2 import AggregateFunction from e6data_python_connector.typeId import * apilevel = '2.0' @@ -186,6 +188,8 @@ def __init__( self.cluster_uuid = cluster_uuid self._session_id = None self._host = host + # engine ip for stickiness + self._engine_ip = None self._port = port self._secure_channel = secure @@ -206,6 +210,9 @@ def __init__( self.grpc_auto_resume_timeout_seconds = self._grpc_options.pop('grpc_auto_resume_timeout_seconds') self._create_client() + # initialize session for dataframe + self._dataframe_session = DataFrameSession(self) + @property def _get_grpc_options(self): """ @@ -324,6 +331,7 @@ def get_session_id(self): metadata=_get_grpc_header(cluster=self.cluster_uuid) ) self._session_id = authenticate_response.sessionId + self._engine_ip = authenticate_response.engineIP else: raise e else: @@ -357,6 +365,7 @@ def __exit__(self, exc_type, exc_val, exc_tb): exc_val (BaseException): The exception instance raised (if any). exc_tb (Traceback): The traceback object of the exception (if any). """ + self._dataframe_session.terminate() self.close() def close(self): @@ -365,6 +374,7 @@ def close(self): This method ensures that the gRPC channel is properly closed and the session ID is reset to None. """ + self._dataframe_session.terminate() if self._channel is not None: self._channel.close() self._channel = None @@ -533,6 +543,28 @@ def cursor(self, catalog_name=None, db_name=None): """ return Cursor(self, database=db_name, catalog_name=catalog_name) + def load_parquet(self, parquet_path) -> "DataFrame": + dataframe = DataFrame(self, + file_path=parquet_path, + dataframe_number=self._dataframe_session.get_dataframe_number, + table_name=None, + engine_ip=self._engine_ip) + + self._dataframe_session.update_dataframe_map(dataframe=dataframe) + return dataframe + + def load_table(self, table_name, database = None, catalog = None) -> "DataFrame": + dataframe = DataFrame(self, + file_path=None, + dataframe_number=self._dataframe_session.get_dataframe_number, + table_name=table_name, + engine_ip=self._engine_ip, + database=database, + catalog=catalog) + + self._dataframe_session.update_dataframe_map(dataframe=dataframe) + return dataframe + def rollback(self): """ Rolls back the current transaction. @@ -552,6 +584,10 @@ def client(self): """ return self._client + @property + def host(self): + return self._host + class Cursor(DBAPICursor): """ @@ -1032,6 +1068,239 @@ def explain_analyse(self): ) +class DataFrame: + + def __init__(self, connection: Connection, file_path, dataframe_number, table_name, engine_ip, database = None, catalog = None): + self._dataframe_number = dataframe_number + self._connection = connection + self._catalog = self._connection.catalog_name if catalog is None else catalog + self._database = self._connection.database if database is None else database + self._table_name = table_name + self._file_path = file_path + self._sessionId = connection.get_session_id + self._engine_ip = engine_ip + self._is_metadata_updated = False + self._query_id = None + self._data = None + self._batch = None + self._create_dataframe(self._file_path is not None) + + def _create_dataframe(self, create_dataframe_from_parquet : bool): + client = self._connection.client + + create_dataframe_request = e6x_engine_pb2.CreateDataFrameRequest( + parquetFilePath=self._file_path, + catalog=self._catalog, + schema=self._database, + table=self._table_name, + sessionId=self._sessionId, + engineIP=self._engine_ip, + dataframeNumber=self._dataframe_number, + createFromParquet=create_dataframe_from_parquet + ) + + create_dataframe_response = client.createDataFrame( + create_dataframe_request + ) + self._query_id = create_dataframe_response.queryId + + def select(self, *fields : str) -> "DataFrame": + projection_fields = [] + for field in fields: + projection_fields.append(field) + + client = self._connection.client + projection_on_dataframe_request = e6x_engine_pb2.ProjectionOnDataFrameRequest( + queryId=self._query_id, + dataframeNumber=self._dataframe_number, + sessionId=self._sessionId, + engineIP=self._engine_ip, + field=projection_fields + ) + + client.projectionOnDataFrame(projection_on_dataframe_request) + + return self + + def aggregate(self, agg_function : dict[str, str], group_by : list[str] = None) -> "DataFrame": + def get_agg_enum(function_name : str) -> AggregateFunction | None: + match function_name.lower(): + case 'sum': + return e6x_engine_pb2.AggregateFunction.SUM + case 'count': + return e6x_engine_pb2.AggregateFunction.COUNT + case 'count_star': + return e6x_engine_pb2.AggregateFunction.COUNT_STAR + case 'count_distinct': + return e6x_engine_pb2.AggregateFunction.COUNT_DISTINCT + case _: + return None + + agg_function_map = {} + + for column in agg_function.keys(): + fun = get_agg_enum(agg_function.get(column)) + if fun is not None: + agg_function_map.update({column : fun}) + + client = self._connection.client + aggregate_on_dataframe_request = e6x_engine_pb2.AggregateOnDataFrameRequest( + queryId=self._query_id, + dataframeNumber=self._dataframe_number, + sessionId=self._sessionId, + engineIP=self._engine_ip, + aggregateFunctionMap=agg_function_map, + groupBy=group_by + ) + + client.aggregateOnDataFrame(aggregate_on_dataframe_request) + + return self + + def where(self, where_clause : str) -> "DataFrame": + client = self._connection.client + filter_on_dataframe_request = e6x_engine_pb2.FilterOnDataFrameRequest( + queryId=self._query_id, + dataframeNumber=self._dataframe_number, + sessionId=self._sessionId, + engineIP=self._engine_ip, + whereClause=where_clause + ) + + client.filterOnDataFrame(filter_on_dataframe_request) + + return self + + def order_by(self, *field_list : str) -> "DataFrame": + order_by_map = dict() + + # default sorting in ASCENDING order + for column in field_list: + order_by_map.update({ column : e6x_engine_pb2.SortDirection.ASC}) + + client = self._connection.client + + orderby_on_dataframe_request = e6x_engine_pb2.OrderByOnDataFrameRequest( + queryId=self._query_id, + dataframeNumber=self._dataframe_number, + sessionId=self._sessionId, + engineIP=self._engine_ip, + orderByFieldMap=order_by_map + ) + + client.orderByOnDataFrame(orderby_on_dataframe_request) + return self + + def limit(self, fetch_limit : int) -> "DataFrame": + client = self._connection.client + limit_on_dataframe_request = e6x_engine_pb2.LimitOnDataFrameRequest( + queryId=self._query_id, + dataframeNumber=self._dataframe_number, + sessionId=self._sessionId, + engineIP=self._engine_ip, + fetchLimit=fetch_limit + ) + + client.limitOnDataFrame(limit_on_dataframe_request) + + return self + + def show(self): + self.execute() + return self.fetchall() + + def execute(self): + client = self._connection.client + execute_dataframe_request = e6x_engine_pb2.ExecuteDataFrameRequest( + queryId=self._query_id, + dataframeNumber=self._dataframe_number, + sessionId=self._sessionId, + engineIP=self._engine_ip, + ) + client.executeDataFrame(execute_dataframe_request) + + def _update_meta_data(self): + result_meta_data_request = e6x_engine_pb2.GetResultMetadataRequest( + engineIP=self._engine_ip, + sessionId=self._sessionId, + queryId=self._query_id + ) + get_result_metadata_response = self._connection.client.getResultMetadata( + result_meta_data_request, + ) + buffer = BytesIO(get_result_metadata_response.resultMetaData) + self._rowcount, self._query_columns_description = get_query_columns_info(buffer) + self._is_metadata_updated = True + + def _fetch_batch(self): + client = self._connection.client + get_next_result_batch_request = e6x_engine_pb2.GetNextResultBatchRequest( + engineIP=self._engine_ip, + sessionId=self._sessionId, + queryId=self._query_id + ) + get_next_result_batch_response = client.getNextResultBatch( + get_next_result_batch_request, + ) + buffer = get_next_result_batch_response.resultBatch + if not self._is_metadata_updated: + self._update_meta_data() + if not buffer or len(buffer) == 0: + return None + # one batch retrieves the predefined set of rows + return read_rows_from_chunk(self._query_columns_description, buffer) + + def fetchall(self): + self._data = list() + while True: + rows = self._fetch_batch() + if rows is None: + break + self._data = self._data + rows + rows = self._data + self._data = None + return rows + +class DataFrameSession: + def __init__(self, connection: Connection, planner_ip): + self._connection = connection + self._dataframe_count = 0 + self._dataframe_map = dict() + self._is_terminated = False + self._session_id = connection.get_session_id + self._planner_ip = planner_ip + + def __exit__(self, exc_type, exc_val, exc_tb): + self.terminate() + + def update_dataframe_map(self, dataframe : "DataFrame"): + self._dataframe_map.update({self._dataframe_count : dataframe}) + self._dataframe_count = self._dataframe_count + 1 + + @property + def get_dataframe_number(self) -> int: + return self._dataframe_count + + @property + def is_terminated(self) -> bool: + return self._is_terminated + + @property + def planner_ip(self): + return self._planner_ip + + def terminate(self): + if not self._is_terminated: + drop_user_context_request = e6x_engine_pb2.DropUserContextRequest( + sessionId=self._session_id, + engineIP=self._planner_ip + ) + + self._connection.client.dropUserContext(drop_user_context_request) + self._is_terminated = True + + + def poll(self, get_progress_update=True): """Poll for and return the raw status data provided by the Hive Thrift REST API. :returns: ``ttypes.TGetOperationStatusResp`` diff --git a/e6data_python_connector/server/e6x_engine_pb2.py b/e6data_python_connector/server/e6x_engine_pb2.py index 756dbd5..ce1aaae 100644 --- a/e6data_python_connector/server/e6x_engine_pb2.py +++ b/e6data_python_connector/server/e6x_engine_pb2.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: e6x_engine.proto +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -13,14 +14,22 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x65\x36x_engine.proto\"2\n\nGFieldInfo\x12\x11\n\tfieldName\x18\x01 \x01(\t\x12\x11\n\tfieldType\x18\x02 \x01(\t\"A\n\x13\x46\x61iledSchemaElement\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\"P\n\x16GetAddCatalogsResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\x12&\n\x08\x66\x61ilures\x18\x02 \x03(\x0b\x32\x14.FailedSchemaElement\"2\n\x0f\x43\x61talogResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tisDefault\x18\x02 \x01(\x08\"<\n\x0eParameterValue\x12\r\n\x05index\x18\x01 \x01(\x11\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"D\n\x0c\x43learRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"\x0f\n\rClearResponse\"J\n\x12\x43\x61ncelQueryRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"\x15\n\x13\x43\x61ncelQueryResponse\"F\n\x0e\x45xplainRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"\"\n\x0f\x45xplainResponse\x12\x0f\n\x07\x65xplain\x18\x01 \x01(\t\"Y\n\rDryRunRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x13\n\x0bqueryString\x18\x04 \x01(\t\"%\n\x0e\x44ryRunResponse\x12\x13\n\x0b\x64ryrunValue\x18\x01 \x01(\t\"l\n\x0f\x44ryRunRequestV2\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x13\n\x0bqueryString\x18\x04 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x05 \x01(\t\"M\n\x15\x45xplainAnalyzeRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"m\n\x16\x45xplainAnalyzeResponse\x12\x16\n\x0e\x65xplainAnalyze\x18\x01 \x01(\t\x12\x10\n\x08isCached\x18\x02 \x01(\x08\x12\x13\n\x0bparsingTime\x18\x03 \x01(\x12\x12\x14\n\x0cqueueingTime\x18\x04 \x01(\x12\"b\n\x17PrepareStatementRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x13\n\x0bqueryString\x18\x03 \x01(\t\x12\x0f\n\x07quoting\x18\x04 \x01(\t\"u\n\x19PrepareStatementV2Request\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x03 \x01(\t\x12\x13\n\x0bqueryString\x18\x04 \x01(\t\x12\x0f\n\x07quoting\x18\x05 \x01(\t\"=\n\x18PrepareStatementResponse\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x0f\n\x07queryId\x18\x02 \x01(\t\"@\n\x0eUserAccessInfo\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x10\n\x08userName\x18\x02 \x01(\t\x12\x0e\n\x06tokens\x18\x03 \x03(\t\"g\n\x17\x45xecuteStatementRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\x12\x16\n\x0eshouldNotCache\x18\x04 \x01(\x08\"\x8a\x01\n\x19\x45xecuteStatementV2Request\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\x12\x16\n\x0eshouldNotCache\x18\x04 \x01(\x08\x12\x1f\n\x06params\x18\x05 \x03(\x0b\x32\x0f.ParameterValue\"\x1a\n\x18\x45xecuteStatementResponse\"O\n\x17GetNextResultRowRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"-\n\x18GetNextResultRowResponse\x12\x11\n\tresultRow\x18\x02 \x01(\x0c\"w\n\x19GetNextResultBatchRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\x12\x16\n\tasRowData\x18\x04 \x01(\x08H\x00\x88\x01\x01\x42\x0c\n\n_asRowData\"1\n\x1aGetNextResultBatchResponse\x12\x13\n\x0bresultBatch\x18\x02 \x01(\x0c\"P\n\x18GetResultMetadataRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"3\n\x19GetResultMetadataResponse\x12\x16\n\x0eresultMetaData\x18\x01 \x01(\x0c\"5\n\x13\x41uthenticateRequest\x12\x0c\n\x04user\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\")\n\x14\x41uthenticateResponse\x12\x11\n\tsessionId\x18\x01 \x01(\t\"5\n\x10GetTablesRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\"H\n\x12GetTablesV2Request\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x03 \x01(\t\"#\n\x11GetTablesResponse\x12\x0e\n\x06tables\x18\x01 \x03(\t\"*\n\x15GetSchemaNamesRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\"=\n\x17GetSchemaNamesV2Request\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x02 \x01(\t\")\n\x16GetSchemaNamesResponse\x12\x0f\n\x07schemas\x18\x01 \x03(\t\"E\n\x11GetColumnsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\r\n\x05table\x18\x03 \x01(\t\"X\n\x13GetColumnsV2Request\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\r\n\x05table\x18\x03 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x04 \x01(\t\"4\n\x12GetColumnsResponse\x12\x1e\n\tfieldInfo\x18\x01 \x03(\x0b\x32\x0b.GFieldInfo\"E\n\rStatusRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"2\n\x0eStatusResponse\x12\x0e\n\x06status\x18\x02 \x01(\x08\x12\x10\n\x08rowCount\x18\x03 \x01(\x12\"5\n\x12\x41\x64\x64\x43\x61talogsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0c\n\x04json\x18\x02 \x01(\t\"#\n\x12UpdateUsersRequest\x12\r\n\x05users\x18\x01 \x01(\x0c\"\x15\n\x13UpdateUsersResponse\"3\n\x0fSetPropsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\r\n\x05props\x18\x02 \x01(\t\"\x12\n\x10SetPropsResponse\"*\n\x15GetAddCatalogsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\"\x15\n\x13\x41\x64\x64\x43\x61talogsResponse\"\x15\n\x13GetCatalogesRequest\"B\n\x14GetCatalogesResponse\x12*\n\x10\x63\x61talogResponses\x18\x01 \x03(\x0b\x32\x10.CatalogResponse\"+\n\x16RefreshCatalogsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\"\x19\n\x17RefreshCatalogsResponse\"X\n\x12RemoteChunkRequest\x12\x17\n\x0foriginalQueryId\x18\x01 \x01(\t\x12\x15\n\rremoteQueryId\x18\x02 \x01(\t\x12\x12\n\nsQueryHash\x18\x03 \x01(\t\"3\n\x13RemoteChunkResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\r\n\x05\x63hunk\x18\x02 \x01(\x0c\"Q\n\x19\x43learOrCancelQueryRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"\x1c\n\x1a\x43learOrCancelQueryResponse2\xaa\x0e\n\x12QueryEngineService\x12&\n\x05\x63lear\x12\r.ClearRequest\x1a\x0e.ClearResponse\x12\x38\n\x0b\x63\x61ncelQuery\x12\x13.CancelQueryRequest\x1a\x14.CancelQueryResponse\x12M\n\x12\x63learOrCancelQuery\x12\x1a.ClearOrCancelQueryRequest\x1a\x1b.ClearOrCancelQueryResponse\x12,\n\x07\x65xplain\x12\x0f.ExplainRequest\x1a\x10.ExplainResponse\x12)\n\x06\x64ryRun\x12\x0e.DryRunRequest\x1a\x0f.DryRunResponse\x12-\n\x08\x64ryRunV2\x12\x10.DryRunRequestV2\x1a\x0f.DryRunResponse\x12\x41\n\x0e\x65xplainAnalyze\x12\x16.ExplainAnalyzeRequest\x1a\x17.ExplainAnalyzeResponse\x12G\n\x10prepareStatement\x12\x18.PrepareStatementRequest\x1a\x19.PrepareStatementResponse\x12K\n\x12prepareStatementV2\x12\x1a.PrepareStatementV2Request\x1a\x19.PrepareStatementResponse\x12G\n\x10\x65xecuteStatement\x12\x18.ExecuteStatementRequest\x1a\x19.ExecuteStatementResponse\x12K\n\x12\x65xecuteStatementV2\x12\x1a.ExecuteStatementV2Request\x1a\x19.ExecuteStatementResponse\x12G\n\x10getNextResultRow\x12\x18.GetNextResultRowRequest\x1a\x19.GetNextResultRowResponse\x12M\n\x12getNextResultBatch\x12\x1a.GetNextResultBatchRequest\x1a\x1b.GetNextResultBatchResponse\x12J\n\x11getResultMetadata\x12\x19.GetResultMetadataRequest\x1a\x1a.GetResultMetadataResponse\x12;\n\x0c\x61uthenticate\x12\x14.AuthenticateRequest\x1a\x15.AuthenticateResponse\x12\x32\n\tgetTables\x12\x11.GetTablesRequest\x1a\x12.GetTablesResponse\x12\x36\n\x0bgetTablesV2\x12\x13.GetTablesV2Request\x1a\x12.GetTablesResponse\x12\x41\n\x0egetSchemaNames\x12\x16.GetSchemaNamesRequest\x1a\x17.GetSchemaNamesResponse\x12\x45\n\x10getSchemaNamesV2\x12\x18.GetSchemaNamesV2Request\x1a\x17.GetSchemaNamesResponse\x12\x35\n\ngetColumns\x12\x12.GetColumnsRequest\x1a\x13.GetColumnsResponse\x12\x39\n\x0cgetColumnsV2\x12\x14.GetColumnsV2Request\x1a\x13.GetColumnsResponse\x12\x38\n\x0bupdateUsers\x12\x13.UpdateUsersRequest\x1a\x14.UpdateUsersResponse\x12/\n\x08setProps\x12\x10.SetPropsRequest\x1a\x11.SetPropsResponse\x12)\n\x06status\x12\x0e.StatusRequest\x1a\x0f.StatusResponse\x12\x38\n\x0b\x61\x64\x64\x43\x61talogs\x12\x13.AddCatalogsRequest\x1a\x14.AddCatalogsResponse\x12I\n\x16getAddCatalogsResponse\x12\x16.GetAddCatalogsRequest\x1a\x17.GetAddCatalogsResponse\x12;\n\x0cgetCataloges\x12\x14.GetCatalogesRequest\x1a\x15.GetCatalogesResponse\x12\x45\n\x18getNextRemoteCachedChunk\x12\x13.RemoteChunkRequest\x1a\x14.RemoteChunkResponse\x12\x44\n\x0frefreshCatalogs\x12\x17.RefreshCatalogsRequest\x1a\x18.RefreshCatalogsResponseB\x02P\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x65\x36x_engine.proto\"2\n\nGFieldInfo\x12\x11\n\tfieldName\x18\x01 \x01(\t\x12\x11\n\tfieldType\x18\x02 \x01(\t\"A\n\x13\x46\x61iledSchemaElement\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\"P\n\x16GetAddCatalogsResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\x12&\n\x08\x66\x61ilures\x18\x02 \x03(\x0b\x32\x14.FailedSchemaElement\"2\n\x0f\x43\x61talogResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tisDefault\x18\x02 \x01(\x08\"<\n\x0eParameterValue\x12\r\n\x05index\x18\x01 \x01(\x11\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"D\n\x0c\x43learRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"\x0f\n\rClearResponse\"J\n\x12\x43\x61ncelQueryRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"\x15\n\x13\x43\x61ncelQueryResponse\"F\n\x0e\x45xplainRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"\"\n\x0f\x45xplainResponse\x12\x0f\n\x07\x65xplain\x18\x01 \x01(\t\"Y\n\rDryRunRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x13\n\x0bqueryString\x18\x04 \x01(\t\"%\n\x0e\x44ryRunResponse\x12\x13\n\x0b\x64ryrunValue\x18\x01 \x01(\t\"l\n\x0f\x44ryRunRequestV2\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x13\n\x0bqueryString\x18\x04 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x05 \x01(\t\"M\n\x15\x45xplainAnalyzeRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"m\n\x16\x45xplainAnalyzeResponse\x12\x16\n\x0e\x65xplainAnalyze\x18\x01 \x01(\t\x12\x10\n\x08isCached\x18\x02 \x01(\x08\x12\x13\n\x0bparsingTime\x18\x03 \x01(\x12\x12\x14\n\x0cqueueingTime\x18\x04 \x01(\x12\"b\n\x17PrepareStatementRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x13\n\x0bqueryString\x18\x03 \x01(\t\x12\x0f\n\x07quoting\x18\x04 \x01(\t\"u\n\x19PrepareStatementV2Request\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x03 \x01(\t\x12\x13\n\x0bqueryString\x18\x04 \x01(\t\x12\x0f\n\x07quoting\x18\x05 \x01(\t\"=\n\x18PrepareStatementResponse\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x0f\n\x07queryId\x18\x02 \x01(\t\"@\n\x0eUserAccessInfo\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x10\n\x08userName\x18\x02 \x01(\t\x12\x0e\n\x06tokens\x18\x03 \x03(\t\"g\n\x17\x45xecuteStatementRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\x12\x16\n\x0eshouldNotCache\x18\x04 \x01(\x08\"\x8a\x01\n\x19\x45xecuteStatementV2Request\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\x12\x16\n\x0eshouldNotCache\x18\x04 \x01(\x08\x12\x1f\n\x06params\x18\x05 \x03(\x0b\x32\x0f.ParameterValue\"\x1a\n\x18\x45xecuteStatementResponse\"O\n\x17GetNextResultRowRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"-\n\x18GetNextResultRowResponse\x12\x11\n\tresultRow\x18\x02 \x01(\x0c\"w\n\x19GetNextResultBatchRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\x12\x16\n\tasRowData\x18\x04 \x01(\x08H\x00\x88\x01\x01\x42\x0c\n\n_asRowData\"1\n\x1aGetNextResultBatchResponse\x12\x13\n\x0bresultBatch\x18\x02 \x01(\x0c\"P\n\x18GetResultMetadataRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"3\n\x19GetResultMetadataResponse\x12\x16\n\x0eresultMetaData\x18\x01 \x01(\x0c\"5\n\x13\x41uthenticateRequest\x12\x0c\n\x04user\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\";\n\x14\x41uthenticateResponse\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x02 \x01(\t\"5\n\x10GetTablesRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\"H\n\x12GetTablesV2Request\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x03 \x01(\t\"#\n\x11GetTablesResponse\x12\x0e\n\x06tables\x18\x01 \x03(\t\"*\n\x15GetSchemaNamesRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\"=\n\x17GetSchemaNamesV2Request\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x02 \x01(\t\")\n\x16GetSchemaNamesResponse\x12\x0f\n\x07schemas\x18\x01 \x03(\t\"E\n\x11GetColumnsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\r\n\x05table\x18\x03 \x01(\t\"X\n\x13GetColumnsV2Request\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\r\n\x05table\x18\x03 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x04 \x01(\t\"4\n\x12GetColumnsResponse\x12\x1e\n\tfieldInfo\x18\x01 \x03(\x0b\x32\x0b.GFieldInfo\"E\n\rStatusRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"2\n\x0eStatusResponse\x12\x0e\n\x06status\x18\x02 \x01(\x08\x12\x10\n\x08rowCount\x18\x03 \x01(\x12\"5\n\x12\x41\x64\x64\x43\x61talogsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x0c\n\x04json\x18\x02 \x01(\t\"#\n\x12UpdateUsersRequest\x12\r\n\x05users\x18\x01 \x01(\x0c\"\x15\n\x13UpdateUsersResponse\"3\n\x0fSetPropsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\r\n\x05props\x18\x02 \x01(\t\"\x12\n\x10SetPropsResponse\"*\n\x15GetAddCatalogsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\"\x15\n\x13\x41\x64\x64\x43\x61talogsResponse\"\x15\n\x13GetCatalogesRequest\"B\n\x14GetCatalogesResponse\x12*\n\x10\x63\x61talogResponses\x18\x01 \x03(\x0b\x32\x10.CatalogResponse\"+\n\x16RefreshCatalogsRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\"\x19\n\x17RefreshCatalogsResponse\"X\n\x12RemoteChunkRequest\x12\x17\n\x0foriginalQueryId\x18\x01 \x01(\t\x12\x15\n\rremoteQueryId\x18\x02 \x01(\t\x12\x12\n\nsQueryHash\x18\x03 \x01(\t\"3\n\x13RemoteChunkResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\r\n\x05\x63hunk\x18\x02 \x01(\x0c\"Q\n\x19\x43learOrCancelQueryRequest\x12\x10\n\x08\x65ngineIP\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0f\n\x07queryId\x18\x03 \x01(\t\"\x1c\n\x1a\x43learOrCancelQueryResponse\"\xba\x01\n\x16\x43reateDataFrameRequest\x12\x17\n\x0fparquetFilePath\x18\x01 \x01(\t\x12\x0f\n\x07\x63\x61talog\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\r\n\x05table\x18\x04 \x01(\t\x12\x11\n\tsessionId\x18\x05 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x06 \x01(\t\x12\x17\n\x0f\x64\x61taframeNumber\x18\x07 \x01(\x05\x12\x19\n\x11\x63reateFromParquet\x18\x08 \x01(\x08\"*\n\x17\x43reateDataFrameResponse\x12\x0f\n\x07queryId\x18\x01 \x01(\t\"|\n\x1cProjectionOnDataFrameRequest\x12\x0f\n\x07queryId\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x61taframeNumber\x18\x02 \x01(\x05\x12\x11\n\tsessionId\x18\x03 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x04 \x01(\t\x12\r\n\x05\x66ield\x18\x05 \x03(\t\"\x1f\n\x1dProjectionOnDataFrameResponse\"\xa4\x02\n\x1b\x41ggregateOnDataFrameRequest\x12\x0f\n\x07queryId\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x61taframeNumber\x18\x02 \x01(\x05\x12\x11\n\tsessionId\x18\x03 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x04 \x01(\t\x12T\n\x14\x61ggregateFunctionMap\x18\x05 \x03(\x0b\x32\x36.AggregateOnDataFrameRequest.AggregateFunctionMapEntry\x12\x0f\n\x07groupBy\x18\x06 \x03(\t\x1aO\n\x19\x41ggregateFunctionMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0e\x32\x12.AggregateFunction:\x02\x38\x01\"\x1e\n\x1c\x41ggregateOnDataFrameResponse\"~\n\x18\x46ilterOnDataFrameRequest\x12\x0f\n\x07queryId\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x61taframeNumber\x18\x02 \x01(\x05\x12\x11\n\tsessionId\x18\x03 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x04 \x01(\t\x12\x13\n\x0bwhereClause\x18\x05 \x01(\t\"\x1b\n\x19\x46ilterOnDataFrameResponse\"\xfc\x01\n\x19OrderByOnDataFrameRequest\x12\x0f\n\x07queryId\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x61taframeNumber\x18\x02 \x01(\x05\x12\x11\n\tsessionId\x18\x03 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x04 \x01(\t\x12H\n\x0forderByFieldMap\x18\x05 \x03(\x0b\x32/.OrderByOnDataFrameRequest.OrderByFieldMapEntry\x1a\x46\n\x14OrderByFieldMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1d\n\x05value\x18\x02 \x01(\x0e\x32\x0e.SortDirection:\x02\x38\x01\"\x1c\n\x1aOrderByOnDataFrameResponse\"|\n\x17LimitOnDataFrameRequest\x12\x0f\n\x07queryId\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x61taframeNumber\x18\x02 \x01(\x05\x12\x11\n\tsessionId\x18\x03 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x04 \x01(\t\x12\x12\n\nfetchLimit\x18\x05 \x01(\x05\"\x1a\n\x18LimitOnDataFrameResponse\"h\n\x17\x45xecuteDataFrameRequest\x12\x0f\n\x07queryId\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x61taframeNumber\x18\x02 \x01(\x05\x12\x11\n\tsessionId\x18\x03 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x04 \x01(\t\"\x1a\n\x18\x45xecuteDataFrameResponse\"=\n\x16\x44ropUserContextRequest\x12\x11\n\tsessionId\x18\x01 \x01(\t\x12\x10\n\x08\x65ngineIP\x18\x02 \x01(\t\"\x19\n\x17\x44ropUserContextResponse*K\n\x11\x41ggregateFunction\x12\x07\n\x03SUM\x10\x00\x12\t\n\x05\x43OUNT\x10\x01\x12\x0e\n\nCOUNT_STAR\x10\x02\x12\x12\n\x0e\x43OUNT_DISTINCT\x10\x03*\"\n\rSortDirection\x12\x07\n\x03\x41SC\x10\x00\x12\x08\n\x04\x44\x45SC\x10\x01\x32\x90\x13\n\x12QueryEngineService\x12&\n\x05\x63lear\x12\r.ClearRequest\x1a\x0e.ClearResponse\x12\x38\n\x0b\x63\x61ncelQuery\x12\x13.CancelQueryRequest\x1a\x14.CancelQueryResponse\x12M\n\x12\x63learOrCancelQuery\x12\x1a.ClearOrCancelQueryRequest\x1a\x1b.ClearOrCancelQueryResponse\x12,\n\x07\x65xplain\x12\x0f.ExplainRequest\x1a\x10.ExplainResponse\x12)\n\x06\x64ryRun\x12\x0e.DryRunRequest\x1a\x0f.DryRunResponse\x12-\n\x08\x64ryRunV2\x12\x10.DryRunRequestV2\x1a\x0f.DryRunResponse\x12\x41\n\x0e\x65xplainAnalyze\x12\x16.ExplainAnalyzeRequest\x1a\x17.ExplainAnalyzeResponse\x12G\n\x10prepareStatement\x12\x18.PrepareStatementRequest\x1a\x19.PrepareStatementResponse\x12K\n\x12prepareStatementV2\x12\x1a.PrepareStatementV2Request\x1a\x19.PrepareStatementResponse\x12G\n\x10\x65xecuteStatement\x12\x18.ExecuteStatementRequest\x1a\x19.ExecuteStatementResponse\x12K\n\x12\x65xecuteStatementV2\x12\x1a.ExecuteStatementV2Request\x1a\x19.ExecuteStatementResponse\x12G\n\x10getNextResultRow\x12\x18.GetNextResultRowRequest\x1a\x19.GetNextResultRowResponse\x12M\n\x12getNextResultBatch\x12\x1a.GetNextResultBatchRequest\x1a\x1b.GetNextResultBatchResponse\x12J\n\x11getResultMetadata\x12\x19.GetResultMetadataRequest\x1a\x1a.GetResultMetadataResponse\x12;\n\x0c\x61uthenticate\x12\x14.AuthenticateRequest\x1a\x15.AuthenticateResponse\x12\x32\n\tgetTables\x12\x11.GetTablesRequest\x1a\x12.GetTablesResponse\x12\x36\n\x0bgetTablesV2\x12\x13.GetTablesV2Request\x1a\x12.GetTablesResponse\x12\x41\n\x0egetSchemaNames\x12\x16.GetSchemaNamesRequest\x1a\x17.GetSchemaNamesResponse\x12\x45\n\x10getSchemaNamesV2\x12\x18.GetSchemaNamesV2Request\x1a\x17.GetSchemaNamesResponse\x12\x35\n\ngetColumns\x12\x12.GetColumnsRequest\x1a\x13.GetColumnsResponse\x12\x39\n\x0cgetColumnsV2\x12\x14.GetColumnsV2Request\x1a\x13.GetColumnsResponse\x12\x38\n\x0bupdateUsers\x12\x13.UpdateUsersRequest\x1a\x14.UpdateUsersResponse\x12/\n\x08setProps\x12\x10.SetPropsRequest\x1a\x11.SetPropsResponse\x12)\n\x06status\x12\x0e.StatusRequest\x1a\x0f.StatusResponse\x12\x38\n\x0b\x61\x64\x64\x43\x61talogs\x12\x13.AddCatalogsRequest\x1a\x14.AddCatalogsResponse\x12I\n\x16getAddCatalogsResponse\x12\x16.GetAddCatalogsRequest\x1a\x17.GetAddCatalogsResponse\x12;\n\x0cgetCataloges\x12\x14.GetCatalogesRequest\x1a\x15.GetCatalogesResponse\x12\x45\n\x18getNextRemoteCachedChunk\x12\x13.RemoteChunkRequest\x1a\x14.RemoteChunkResponse\x12\x44\n\x0frefreshCatalogs\x12\x17.RefreshCatalogsRequest\x1a\x18.RefreshCatalogsResponse\x12\x44\n\x0f\x63reateDataFrame\x12\x17.CreateDataFrameRequest\x1a\x18.CreateDataFrameResponse\x12V\n\x15projectionOnDataFrame\x12\x1d.ProjectionOnDataFrameRequest\x1a\x1e.ProjectionOnDataFrameResponse\x12S\n\x14\x61ggregateOnDataFrame\x12\x1c.AggregateOnDataFrameRequest\x1a\x1d.AggregateOnDataFrameResponse\x12J\n\x11\x66ilterOnDataFrame\x12\x19.FilterOnDataFrameRequest\x1a\x1a.FilterOnDataFrameResponse\x12M\n\x12orderByOnDataFrame\x12\x1a.OrderByOnDataFrameRequest\x1a\x1b.OrderByOnDataFrameResponse\x12G\n\x10limitOnDataFrame\x12\x18.LimitOnDataFrameRequest\x1a\x19.LimitOnDataFrameResponse\x12G\n\x10\x65xecuteDataFrame\x12\x18.ExecuteDataFrameRequest\x1a\x19.ExecuteDataFrameResponse\x12\x44\n\x0f\x64ropUserContext\x12\x17.DropUserContextRequest\x1a\x18.DropUserContextResponseB\x02P\x01\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'e6x_engine_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'P\001' +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'P\001' + _globals['_AGGREGATEONDATAFRAMEREQUEST_AGGREGATEFUNCTIONMAPENTRY']._loaded_options = None + _globals['_AGGREGATEONDATAFRAMEREQUEST_AGGREGATEFUNCTIONMAPENTRY']._serialized_options = b'8\001' + _globals['_ORDERBYONDATAFRAMEREQUEST_ORDERBYFIELDMAPENTRY']._loaded_options = None + _globals['_ORDERBYONDATAFRAMEREQUEST_ORDERBYFIELDMAPENTRY']._serialized_options = b'8\001' + _globals['_AGGREGATEFUNCTION']._serialized_start=5099 + _globals['_AGGREGATEFUNCTION']._serialized_end=5174 + _globals['_SORTDIRECTION']._serialized_start=5176 + _globals['_SORTDIRECTION']._serialized_end=5210 _globals['_GFIELDINFO']._serialized_start=20 _globals['_GFIELDINFO']._serialized_end=70 _globals['_FAILEDSCHEMAELEMENT']._serialized_start=72 @@ -82,59 +91,95 @@ _globals['_AUTHENTICATEREQUEST']._serialized_start=2116 _globals['_AUTHENTICATEREQUEST']._serialized_end=2169 _globals['_AUTHENTICATERESPONSE']._serialized_start=2171 - _globals['_AUTHENTICATERESPONSE']._serialized_end=2212 - _globals['_GETTABLESREQUEST']._serialized_start=2214 - _globals['_GETTABLESREQUEST']._serialized_end=2267 - _globals['_GETTABLESV2REQUEST']._serialized_start=2269 - _globals['_GETTABLESV2REQUEST']._serialized_end=2341 - _globals['_GETTABLESRESPONSE']._serialized_start=2343 - _globals['_GETTABLESRESPONSE']._serialized_end=2378 - _globals['_GETSCHEMANAMESREQUEST']._serialized_start=2380 - _globals['_GETSCHEMANAMESREQUEST']._serialized_end=2422 - _globals['_GETSCHEMANAMESV2REQUEST']._serialized_start=2424 - _globals['_GETSCHEMANAMESV2REQUEST']._serialized_end=2485 - _globals['_GETSCHEMANAMESRESPONSE']._serialized_start=2487 - _globals['_GETSCHEMANAMESRESPONSE']._serialized_end=2528 - _globals['_GETCOLUMNSREQUEST']._serialized_start=2530 - _globals['_GETCOLUMNSREQUEST']._serialized_end=2599 - _globals['_GETCOLUMNSV2REQUEST']._serialized_start=2601 - _globals['_GETCOLUMNSV2REQUEST']._serialized_end=2689 - _globals['_GETCOLUMNSRESPONSE']._serialized_start=2691 - _globals['_GETCOLUMNSRESPONSE']._serialized_end=2743 - _globals['_STATUSREQUEST']._serialized_start=2745 - _globals['_STATUSREQUEST']._serialized_end=2814 - _globals['_STATUSRESPONSE']._serialized_start=2816 - _globals['_STATUSRESPONSE']._serialized_end=2866 - _globals['_ADDCATALOGSREQUEST']._serialized_start=2868 - _globals['_ADDCATALOGSREQUEST']._serialized_end=2921 - _globals['_UPDATEUSERSREQUEST']._serialized_start=2923 - _globals['_UPDATEUSERSREQUEST']._serialized_end=2958 - _globals['_UPDATEUSERSRESPONSE']._serialized_start=2960 - _globals['_UPDATEUSERSRESPONSE']._serialized_end=2981 - _globals['_SETPROPSREQUEST']._serialized_start=2983 - _globals['_SETPROPSREQUEST']._serialized_end=3034 - _globals['_SETPROPSRESPONSE']._serialized_start=3036 - _globals['_SETPROPSRESPONSE']._serialized_end=3054 - _globals['_GETADDCATALOGSREQUEST']._serialized_start=3056 - _globals['_GETADDCATALOGSREQUEST']._serialized_end=3098 - _globals['_ADDCATALOGSRESPONSE']._serialized_start=3100 - _globals['_ADDCATALOGSRESPONSE']._serialized_end=3121 - _globals['_GETCATALOGESREQUEST']._serialized_start=3123 - _globals['_GETCATALOGESREQUEST']._serialized_end=3144 - _globals['_GETCATALOGESRESPONSE']._serialized_start=3146 - _globals['_GETCATALOGESRESPONSE']._serialized_end=3212 - _globals['_REFRESHCATALOGSREQUEST']._serialized_start=3214 - _globals['_REFRESHCATALOGSREQUEST']._serialized_end=3257 - _globals['_REFRESHCATALOGSRESPONSE']._serialized_start=3259 - _globals['_REFRESHCATALOGSRESPONSE']._serialized_end=3284 - _globals['_REMOTECHUNKREQUEST']._serialized_start=3286 - _globals['_REMOTECHUNKREQUEST']._serialized_end=3374 - _globals['_REMOTECHUNKRESPONSE']._serialized_start=3376 - _globals['_REMOTECHUNKRESPONSE']._serialized_end=3427 - _globals['_CLEARORCANCELQUERYREQUEST']._serialized_start=3429 - _globals['_CLEARORCANCELQUERYREQUEST']._serialized_end=3510 - _globals['_CLEARORCANCELQUERYRESPONSE']._serialized_start=3512 - _globals['_CLEARORCANCELQUERYRESPONSE']._serialized_end=3540 - _globals['_QUERYENGINESERVICE']._serialized_start=3543 - _globals['_QUERYENGINESERVICE']._serialized_end=5377 + _globals['_AUTHENTICATERESPONSE']._serialized_end=2230 + _globals['_GETTABLESREQUEST']._serialized_start=2232 + _globals['_GETTABLESREQUEST']._serialized_end=2285 + _globals['_GETTABLESV2REQUEST']._serialized_start=2287 + _globals['_GETTABLESV2REQUEST']._serialized_end=2359 + _globals['_GETTABLESRESPONSE']._serialized_start=2361 + _globals['_GETTABLESRESPONSE']._serialized_end=2396 + _globals['_GETSCHEMANAMESREQUEST']._serialized_start=2398 + _globals['_GETSCHEMANAMESREQUEST']._serialized_end=2440 + _globals['_GETSCHEMANAMESV2REQUEST']._serialized_start=2442 + _globals['_GETSCHEMANAMESV2REQUEST']._serialized_end=2503 + _globals['_GETSCHEMANAMESRESPONSE']._serialized_start=2505 + _globals['_GETSCHEMANAMESRESPONSE']._serialized_end=2546 + _globals['_GETCOLUMNSREQUEST']._serialized_start=2548 + _globals['_GETCOLUMNSREQUEST']._serialized_end=2617 + _globals['_GETCOLUMNSV2REQUEST']._serialized_start=2619 + _globals['_GETCOLUMNSV2REQUEST']._serialized_end=2707 + _globals['_GETCOLUMNSRESPONSE']._serialized_start=2709 + _globals['_GETCOLUMNSRESPONSE']._serialized_end=2761 + _globals['_STATUSREQUEST']._serialized_start=2763 + _globals['_STATUSREQUEST']._serialized_end=2832 + _globals['_STATUSRESPONSE']._serialized_start=2834 + _globals['_STATUSRESPONSE']._serialized_end=2884 + _globals['_ADDCATALOGSREQUEST']._serialized_start=2886 + _globals['_ADDCATALOGSREQUEST']._serialized_end=2939 + _globals['_UPDATEUSERSREQUEST']._serialized_start=2941 + _globals['_UPDATEUSERSREQUEST']._serialized_end=2976 + _globals['_UPDATEUSERSRESPONSE']._serialized_start=2978 + _globals['_UPDATEUSERSRESPONSE']._serialized_end=2999 + _globals['_SETPROPSREQUEST']._serialized_start=3001 + _globals['_SETPROPSREQUEST']._serialized_end=3052 + _globals['_SETPROPSRESPONSE']._serialized_start=3054 + _globals['_SETPROPSRESPONSE']._serialized_end=3072 + _globals['_GETADDCATALOGSREQUEST']._serialized_start=3074 + _globals['_GETADDCATALOGSREQUEST']._serialized_end=3116 + _globals['_ADDCATALOGSRESPONSE']._serialized_start=3118 + _globals['_ADDCATALOGSRESPONSE']._serialized_end=3139 + _globals['_GETCATALOGESREQUEST']._serialized_start=3141 + _globals['_GETCATALOGESREQUEST']._serialized_end=3162 + _globals['_GETCATALOGESRESPONSE']._serialized_start=3164 + _globals['_GETCATALOGESRESPONSE']._serialized_end=3230 + _globals['_REFRESHCATALOGSREQUEST']._serialized_start=3232 + _globals['_REFRESHCATALOGSREQUEST']._serialized_end=3275 + _globals['_REFRESHCATALOGSRESPONSE']._serialized_start=3277 + _globals['_REFRESHCATALOGSRESPONSE']._serialized_end=3302 + _globals['_REMOTECHUNKREQUEST']._serialized_start=3304 + _globals['_REMOTECHUNKREQUEST']._serialized_end=3392 + _globals['_REMOTECHUNKRESPONSE']._serialized_start=3394 + _globals['_REMOTECHUNKRESPONSE']._serialized_end=3445 + _globals['_CLEARORCANCELQUERYREQUEST']._serialized_start=3447 + _globals['_CLEARORCANCELQUERYREQUEST']._serialized_end=3528 + _globals['_CLEARORCANCELQUERYRESPONSE']._serialized_start=3530 + _globals['_CLEARORCANCELQUERYRESPONSE']._serialized_end=3558 + _globals['_CREATEDATAFRAMEREQUEST']._serialized_start=3561 + _globals['_CREATEDATAFRAMEREQUEST']._serialized_end=3747 + _globals['_CREATEDATAFRAMERESPONSE']._serialized_start=3749 + _globals['_CREATEDATAFRAMERESPONSE']._serialized_end=3791 + _globals['_PROJECTIONONDATAFRAMEREQUEST']._serialized_start=3793 + _globals['_PROJECTIONONDATAFRAMEREQUEST']._serialized_end=3917 + _globals['_PROJECTIONONDATAFRAMERESPONSE']._serialized_start=3919 + _globals['_PROJECTIONONDATAFRAMERESPONSE']._serialized_end=3950 + _globals['_AGGREGATEONDATAFRAMEREQUEST']._serialized_start=3953 + _globals['_AGGREGATEONDATAFRAMEREQUEST']._serialized_end=4245 + _globals['_AGGREGATEONDATAFRAMEREQUEST_AGGREGATEFUNCTIONMAPENTRY']._serialized_start=4166 + _globals['_AGGREGATEONDATAFRAMEREQUEST_AGGREGATEFUNCTIONMAPENTRY']._serialized_end=4245 + _globals['_AGGREGATEONDATAFRAMERESPONSE']._serialized_start=4247 + _globals['_AGGREGATEONDATAFRAMERESPONSE']._serialized_end=4277 + _globals['_FILTERONDATAFRAMEREQUEST']._serialized_start=4279 + _globals['_FILTERONDATAFRAMEREQUEST']._serialized_end=4405 + _globals['_FILTERONDATAFRAMERESPONSE']._serialized_start=4407 + _globals['_FILTERONDATAFRAMERESPONSE']._serialized_end=4434 + _globals['_ORDERBYONDATAFRAMEREQUEST']._serialized_start=4437 + _globals['_ORDERBYONDATAFRAMEREQUEST']._serialized_end=4689 + _globals['_ORDERBYONDATAFRAMEREQUEST_ORDERBYFIELDMAPENTRY']._serialized_start=4619 + _globals['_ORDERBYONDATAFRAMEREQUEST_ORDERBYFIELDMAPENTRY']._serialized_end=4689 + _globals['_ORDERBYONDATAFRAMERESPONSE']._serialized_start=4691 + _globals['_ORDERBYONDATAFRAMERESPONSE']._serialized_end=4719 + _globals['_LIMITONDATAFRAMEREQUEST']._serialized_start=4721 + _globals['_LIMITONDATAFRAMEREQUEST']._serialized_end=4845 + _globals['_LIMITONDATAFRAMERESPONSE']._serialized_start=4847 + _globals['_LIMITONDATAFRAMERESPONSE']._serialized_end=4873 + _globals['_EXECUTEDATAFRAMEREQUEST']._serialized_start=4875 + _globals['_EXECUTEDATAFRAMEREQUEST']._serialized_end=4979 + _globals['_EXECUTEDATAFRAMERESPONSE']._serialized_start=4981 + _globals['_EXECUTEDATAFRAMERESPONSE']._serialized_end=5007 + _globals['_DROPUSERCONTEXTREQUEST']._serialized_start=5009 + _globals['_DROPUSERCONTEXTREQUEST']._serialized_end=5070 + _globals['_DROPUSERCONTEXTRESPONSE']._serialized_start=5072 + _globals['_DROPUSERCONTEXTRESPONSE']._serialized_end=5097 + _globals['_QUERYENGINESERVICE']._serialized_start=5213 + _globals['_QUERYENGINESERVICE']._serialized_end=7661 # @@protoc_insertion_point(module_scope) diff --git a/e6data_python_connector/server/e6x_engine_pb2.pyi b/e6data_python_connector/server/e6x_engine_pb2.pyi index 90c6bc0..68b3310 100644 --- a/e6data_python_connector/server/e6x_engine_pb2.pyi +++ b/e6data_python_connector/server/e6x_engine_pb2.pyi @@ -1,12 +1,31 @@ from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class AggregateFunction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SUM: _ClassVar[AggregateFunction] + COUNT: _ClassVar[AggregateFunction] + COUNT_STAR: _ClassVar[AggregateFunction] + COUNT_DISTINCT: _ClassVar[AggregateFunction] + +class SortDirection(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + ASC: _ClassVar[SortDirection] + DESC: _ClassVar[SortDirection] +SUM: AggregateFunction +COUNT: AggregateFunction +COUNT_STAR: AggregateFunction +COUNT_DISTINCT: AggregateFunction +ASC: SortDirection +DESC: SortDirection + class GFieldInfo(_message.Message): - __slots__ = ["fieldName", "fieldType"] + __slots__ = ("fieldName", "fieldType") FIELDNAME_FIELD_NUMBER: _ClassVar[int] FIELDTYPE_FIELD_NUMBER: _ClassVar[int] fieldName: str @@ -14,7 +33,7 @@ class GFieldInfo(_message.Message): def __init__(self, fieldName: _Optional[str] = ..., fieldType: _Optional[str] = ...) -> None: ... class FailedSchemaElement(_message.Message): - __slots__ = ["name", "type", "reason"] + __slots__ = ("name", "type", "reason") NAME_FIELD_NUMBER: _ClassVar[int] TYPE_FIELD_NUMBER: _ClassVar[int] REASON_FIELD_NUMBER: _ClassVar[int] @@ -24,7 +43,7 @@ class FailedSchemaElement(_message.Message): def __init__(self, name: _Optional[str] = ..., type: _Optional[str] = ..., reason: _Optional[str] = ...) -> None: ... class GetAddCatalogsResponse(_message.Message): - __slots__ = ["status", "failures"] + __slots__ = ("status", "failures") STATUS_FIELD_NUMBER: _ClassVar[int] FAILURES_FIELD_NUMBER: _ClassVar[int] status: str @@ -32,7 +51,7 @@ class GetAddCatalogsResponse(_message.Message): def __init__(self, status: _Optional[str] = ..., failures: _Optional[_Iterable[_Union[FailedSchemaElement, _Mapping]]] = ...) -> None: ... class CatalogResponse(_message.Message): - __slots__ = ["name", "isDefault"] + __slots__ = ("name", "isDefault") NAME_FIELD_NUMBER: _ClassVar[int] ISDEFAULT_FIELD_NUMBER: _ClassVar[int] name: str @@ -40,7 +59,7 @@ class CatalogResponse(_message.Message): def __init__(self, name: _Optional[str] = ..., isDefault: bool = ...) -> None: ... class ParameterValue(_message.Message): - __slots__ = ["index", "type", "value"] + __slots__ = ("index", "type", "value") INDEX_FIELD_NUMBER: _ClassVar[int] TYPE_FIELD_NUMBER: _ClassVar[int] VALUE_FIELD_NUMBER: _ClassVar[int] @@ -50,7 +69,7 @@ class ParameterValue(_message.Message): def __init__(self, index: _Optional[int] = ..., type: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... class ClearRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId"] + __slots__ = ("engineIP", "sessionId", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -60,11 +79,11 @@ class ClearRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class ClearResponse(_message.Message): - __slots__ = [] + __slots__ = () def __init__(self) -> None: ... class CancelQueryRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId"] + __slots__ = ("engineIP", "sessionId", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -74,11 +93,11 @@ class CancelQueryRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class CancelQueryResponse(_message.Message): - __slots__ = [] + __slots__ = () def __init__(self) -> None: ... class ExplainRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId"] + __slots__ = ("engineIP", "sessionId", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -88,13 +107,13 @@ class ExplainRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class ExplainResponse(_message.Message): - __slots__ = ["explain"] + __slots__ = ("explain",) EXPLAIN_FIELD_NUMBER: _ClassVar[int] explain: str def __init__(self, explain: _Optional[str] = ...) -> None: ... class DryRunRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "schema", "queryString"] + __slots__ = ("engineIP", "sessionId", "schema", "queryString") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] SCHEMA_FIELD_NUMBER: _ClassVar[int] @@ -106,13 +125,13 @@ class DryRunRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., schema: _Optional[str] = ..., queryString: _Optional[str] = ...) -> None: ... class DryRunResponse(_message.Message): - __slots__ = ["dryrunValue"] + __slots__ = ("dryrunValue",) DRYRUNVALUE_FIELD_NUMBER: _ClassVar[int] dryrunValue: str def __init__(self, dryrunValue: _Optional[str] = ...) -> None: ... class DryRunRequestV2(_message.Message): - __slots__ = ["engineIP", "sessionId", "schema", "queryString", "catalog"] + __slots__ = ("engineIP", "sessionId", "schema", "queryString", "catalog") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] SCHEMA_FIELD_NUMBER: _ClassVar[int] @@ -126,7 +145,7 @@ class DryRunRequestV2(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., schema: _Optional[str] = ..., queryString: _Optional[str] = ..., catalog: _Optional[str] = ...) -> None: ... class ExplainAnalyzeRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId"] + __slots__ = ("engineIP", "sessionId", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -136,7 +155,7 @@ class ExplainAnalyzeRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class ExplainAnalyzeResponse(_message.Message): - __slots__ = ["explainAnalyze", "isCached", "parsingTime", "queueingTime"] + __slots__ = ("explainAnalyze", "isCached", "parsingTime", "queueingTime") EXPLAINANALYZE_FIELD_NUMBER: _ClassVar[int] ISCACHED_FIELD_NUMBER: _ClassVar[int] PARSINGTIME_FIELD_NUMBER: _ClassVar[int] @@ -148,7 +167,7 @@ class ExplainAnalyzeResponse(_message.Message): def __init__(self, explainAnalyze: _Optional[str] = ..., isCached: bool = ..., parsingTime: _Optional[int] = ..., queueingTime: _Optional[int] = ...) -> None: ... class PrepareStatementRequest(_message.Message): - __slots__ = ["sessionId", "schema", "queryString", "quoting"] + __slots__ = ("sessionId", "schema", "queryString", "quoting") SESSIONID_FIELD_NUMBER: _ClassVar[int] SCHEMA_FIELD_NUMBER: _ClassVar[int] QUERYSTRING_FIELD_NUMBER: _ClassVar[int] @@ -160,7 +179,7 @@ class PrepareStatementRequest(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., schema: _Optional[str] = ..., queryString: _Optional[str] = ..., quoting: _Optional[str] = ...) -> None: ... class PrepareStatementV2Request(_message.Message): - __slots__ = ["sessionId", "schema", "catalog", "queryString", "quoting"] + __slots__ = ("sessionId", "schema", "catalog", "queryString", "quoting") SESSIONID_FIELD_NUMBER: _ClassVar[int] SCHEMA_FIELD_NUMBER: _ClassVar[int] CATALOG_FIELD_NUMBER: _ClassVar[int] @@ -174,7 +193,7 @@ class PrepareStatementV2Request(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., schema: _Optional[str] = ..., catalog: _Optional[str] = ..., queryString: _Optional[str] = ..., quoting: _Optional[str] = ...) -> None: ... class PrepareStatementResponse(_message.Message): - __slots__ = ["engineIP", "queryId"] + __slots__ = ("engineIP", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] engineIP: str @@ -182,7 +201,7 @@ class PrepareStatementResponse(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class UserAccessInfo(_message.Message): - __slots__ = ["uuid", "userName", "tokens"] + __slots__ = ("uuid", "userName", "tokens") UUID_FIELD_NUMBER: _ClassVar[int] USERNAME_FIELD_NUMBER: _ClassVar[int] TOKENS_FIELD_NUMBER: _ClassVar[int] @@ -192,7 +211,7 @@ class UserAccessInfo(_message.Message): def __init__(self, uuid: _Optional[str] = ..., userName: _Optional[str] = ..., tokens: _Optional[_Iterable[str]] = ...) -> None: ... class ExecuteStatementRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId", "shouldNotCache"] + __slots__ = ("engineIP", "sessionId", "queryId", "shouldNotCache") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -204,7 +223,7 @@ class ExecuteStatementRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ..., shouldNotCache: bool = ...) -> None: ... class ExecuteStatementV2Request(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId", "shouldNotCache", "params"] + __slots__ = ("engineIP", "sessionId", "queryId", "shouldNotCache", "params") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -218,11 +237,11 @@ class ExecuteStatementV2Request(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ..., shouldNotCache: bool = ..., params: _Optional[_Iterable[_Union[ParameterValue, _Mapping]]] = ...) -> None: ... class ExecuteStatementResponse(_message.Message): - __slots__ = [] + __slots__ = () def __init__(self) -> None: ... class GetNextResultRowRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId"] + __slots__ = ("engineIP", "sessionId", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -232,13 +251,13 @@ class GetNextResultRowRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class GetNextResultRowResponse(_message.Message): - __slots__ = ["resultRow"] + __slots__ = ("resultRow",) RESULTROW_FIELD_NUMBER: _ClassVar[int] resultRow: bytes def __init__(self, resultRow: _Optional[bytes] = ...) -> None: ... class GetNextResultBatchRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId", "asRowData"] + __slots__ = ("engineIP", "sessionId", "queryId", "asRowData") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -250,13 +269,13 @@ class GetNextResultBatchRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ..., asRowData: bool = ...) -> None: ... class GetNextResultBatchResponse(_message.Message): - __slots__ = ["resultBatch"] + __slots__ = ("resultBatch",) RESULTBATCH_FIELD_NUMBER: _ClassVar[int] resultBatch: bytes def __init__(self, resultBatch: _Optional[bytes] = ...) -> None: ... class GetResultMetadataRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId"] + __slots__ = ("engineIP", "sessionId", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -266,13 +285,13 @@ class GetResultMetadataRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class GetResultMetadataResponse(_message.Message): - __slots__ = ["resultMetaData"] + __slots__ = ("resultMetaData",) RESULTMETADATA_FIELD_NUMBER: _ClassVar[int] resultMetaData: bytes def __init__(self, resultMetaData: _Optional[bytes] = ...) -> None: ... class AuthenticateRequest(_message.Message): - __slots__ = ["user", "password"] + __slots__ = ("user", "password") USER_FIELD_NUMBER: _ClassVar[int] PASSWORD_FIELD_NUMBER: _ClassVar[int] user: str @@ -280,13 +299,15 @@ class AuthenticateRequest(_message.Message): def __init__(self, user: _Optional[str] = ..., password: _Optional[str] = ...) -> None: ... class AuthenticateResponse(_message.Message): - __slots__ = ["sessionId"] + __slots__ = ("sessionId", "engineIP") SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] sessionId: str - def __init__(self, sessionId: _Optional[str] = ...) -> None: ... + engineIP: str + def __init__(self, sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ...) -> None: ... class GetTablesRequest(_message.Message): - __slots__ = ["sessionId", "schema"] + __slots__ = ("sessionId", "schema") SESSIONID_FIELD_NUMBER: _ClassVar[int] SCHEMA_FIELD_NUMBER: _ClassVar[int] sessionId: str @@ -294,7 +315,7 @@ class GetTablesRequest(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., schema: _Optional[str] = ...) -> None: ... class GetTablesV2Request(_message.Message): - __slots__ = ["sessionId", "schema", "catalog"] + __slots__ = ("sessionId", "schema", "catalog") SESSIONID_FIELD_NUMBER: _ClassVar[int] SCHEMA_FIELD_NUMBER: _ClassVar[int] CATALOG_FIELD_NUMBER: _ClassVar[int] @@ -304,19 +325,19 @@ class GetTablesV2Request(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., schema: _Optional[str] = ..., catalog: _Optional[str] = ...) -> None: ... class GetTablesResponse(_message.Message): - __slots__ = ["tables"] + __slots__ = ("tables",) TABLES_FIELD_NUMBER: _ClassVar[int] tables: _containers.RepeatedScalarFieldContainer[str] def __init__(self, tables: _Optional[_Iterable[str]] = ...) -> None: ... class GetSchemaNamesRequest(_message.Message): - __slots__ = ["sessionId"] + __slots__ = ("sessionId",) SESSIONID_FIELD_NUMBER: _ClassVar[int] sessionId: str def __init__(self, sessionId: _Optional[str] = ...) -> None: ... class GetSchemaNamesV2Request(_message.Message): - __slots__ = ["sessionId", "catalog"] + __slots__ = ("sessionId", "catalog") SESSIONID_FIELD_NUMBER: _ClassVar[int] CATALOG_FIELD_NUMBER: _ClassVar[int] sessionId: str @@ -324,13 +345,13 @@ class GetSchemaNamesV2Request(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., catalog: _Optional[str] = ...) -> None: ... class GetSchemaNamesResponse(_message.Message): - __slots__ = ["schemas"] + __slots__ = ("schemas",) SCHEMAS_FIELD_NUMBER: _ClassVar[int] schemas: _containers.RepeatedScalarFieldContainer[str] def __init__(self, schemas: _Optional[_Iterable[str]] = ...) -> None: ... class GetColumnsRequest(_message.Message): - __slots__ = ["sessionId", "schema", "table"] + __slots__ = ("sessionId", "schema", "table") SESSIONID_FIELD_NUMBER: _ClassVar[int] SCHEMA_FIELD_NUMBER: _ClassVar[int] TABLE_FIELD_NUMBER: _ClassVar[int] @@ -340,7 +361,7 @@ class GetColumnsRequest(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., schema: _Optional[str] = ..., table: _Optional[str] = ...) -> None: ... class GetColumnsV2Request(_message.Message): - __slots__ = ["sessionId", "schema", "table", "catalog"] + __slots__ = ("sessionId", "schema", "table", "catalog") SESSIONID_FIELD_NUMBER: _ClassVar[int] SCHEMA_FIELD_NUMBER: _ClassVar[int] TABLE_FIELD_NUMBER: _ClassVar[int] @@ -352,13 +373,13 @@ class GetColumnsV2Request(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., schema: _Optional[str] = ..., table: _Optional[str] = ..., catalog: _Optional[str] = ...) -> None: ... class GetColumnsResponse(_message.Message): - __slots__ = ["fieldInfo"] + __slots__ = ("fieldInfo",) FIELDINFO_FIELD_NUMBER: _ClassVar[int] fieldInfo: _containers.RepeatedCompositeFieldContainer[GFieldInfo] def __init__(self, fieldInfo: _Optional[_Iterable[_Union[GFieldInfo, _Mapping]]] = ...) -> None: ... class StatusRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId"] + __slots__ = ("engineIP", "sessionId", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -368,7 +389,7 @@ class StatusRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class StatusResponse(_message.Message): - __slots__ = ["status", "rowCount"] + __slots__ = ("status", "rowCount") STATUS_FIELD_NUMBER: _ClassVar[int] ROWCOUNT_FIELD_NUMBER: _ClassVar[int] status: bool @@ -376,7 +397,7 @@ class StatusResponse(_message.Message): def __init__(self, status: bool = ..., rowCount: _Optional[int] = ...) -> None: ... class AddCatalogsRequest(_message.Message): - __slots__ = ["sessionId", "json"] + __slots__ = ("sessionId", "json") SESSIONID_FIELD_NUMBER: _ClassVar[int] JSON_FIELD_NUMBER: _ClassVar[int] sessionId: str @@ -384,17 +405,17 @@ class AddCatalogsRequest(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., json: _Optional[str] = ...) -> None: ... class UpdateUsersRequest(_message.Message): - __slots__ = ["users"] + __slots__ = ("users",) USERS_FIELD_NUMBER: _ClassVar[int] users: bytes def __init__(self, users: _Optional[bytes] = ...) -> None: ... class UpdateUsersResponse(_message.Message): - __slots__ = [] + __slots__ = () def __init__(self) -> None: ... class SetPropsRequest(_message.Message): - __slots__ = ["sessionId", "props"] + __slots__ = ("sessionId", "props") SESSIONID_FIELD_NUMBER: _ClassVar[int] PROPS_FIELD_NUMBER: _ClassVar[int] sessionId: str @@ -402,41 +423,41 @@ class SetPropsRequest(_message.Message): def __init__(self, sessionId: _Optional[str] = ..., props: _Optional[str] = ...) -> None: ... class SetPropsResponse(_message.Message): - __slots__ = [] + __slots__ = () def __init__(self) -> None: ... class GetAddCatalogsRequest(_message.Message): - __slots__ = ["sessionId"] + __slots__ = ("sessionId",) SESSIONID_FIELD_NUMBER: _ClassVar[int] sessionId: str def __init__(self, sessionId: _Optional[str] = ...) -> None: ... class AddCatalogsResponse(_message.Message): - __slots__ = [] + __slots__ = () def __init__(self) -> None: ... class GetCatalogesRequest(_message.Message): - __slots__ = [] + __slots__ = () def __init__(self) -> None: ... class GetCatalogesResponse(_message.Message): - __slots__ = ["catalogResponses"] + __slots__ = ("catalogResponses",) CATALOGRESPONSES_FIELD_NUMBER: _ClassVar[int] catalogResponses: _containers.RepeatedCompositeFieldContainer[CatalogResponse] def __init__(self, catalogResponses: _Optional[_Iterable[_Union[CatalogResponse, _Mapping]]] = ...) -> None: ... class RefreshCatalogsRequest(_message.Message): - __slots__ = ["sessionId"] + __slots__ = ("sessionId",) SESSIONID_FIELD_NUMBER: _ClassVar[int] sessionId: str def __init__(self, sessionId: _Optional[str] = ...) -> None: ... class RefreshCatalogsResponse(_message.Message): - __slots__ = [] + __slots__ = () def __init__(self) -> None: ... class RemoteChunkRequest(_message.Message): - __slots__ = ["originalQueryId", "remoteQueryId", "sQueryHash"] + __slots__ = ("originalQueryId", "remoteQueryId", "sQueryHash") ORIGINALQUERYID_FIELD_NUMBER: _ClassVar[int] REMOTEQUERYID_FIELD_NUMBER: _ClassVar[int] SQUERYHASH_FIELD_NUMBER: _ClassVar[int] @@ -446,7 +467,7 @@ class RemoteChunkRequest(_message.Message): def __init__(self, originalQueryId: _Optional[str] = ..., remoteQueryId: _Optional[str] = ..., sQueryHash: _Optional[str] = ...) -> None: ... class RemoteChunkResponse(_message.Message): - __slots__ = ["error", "chunk"] + __slots__ = ("error", "chunk") ERROR_FIELD_NUMBER: _ClassVar[int] CHUNK_FIELD_NUMBER: _ClassVar[int] error: str @@ -454,7 +475,7 @@ class RemoteChunkResponse(_message.Message): def __init__(self, error: _Optional[str] = ..., chunk: _Optional[bytes] = ...) -> None: ... class ClearOrCancelQueryRequest(_message.Message): - __slots__ = ["engineIP", "sessionId", "queryId"] + __slots__ = ("engineIP", "sessionId", "queryId") ENGINEIP_FIELD_NUMBER: _ClassVar[int] SESSIONID_FIELD_NUMBER: _ClassVar[int] QUERYID_FIELD_NUMBER: _ClassVar[int] @@ -464,5 +485,165 @@ class ClearOrCancelQueryRequest(_message.Message): def __init__(self, engineIP: _Optional[str] = ..., sessionId: _Optional[str] = ..., queryId: _Optional[str] = ...) -> None: ... class ClearOrCancelQueryResponse(_message.Message): - __slots__ = [] + __slots__ = () + def __init__(self) -> None: ... + +class CreateDataFrameRequest(_message.Message): + __slots__ = ("parquetFilePath", "catalog", "schema", "table", "sessionId", "engineIP", "dataframeNumber", "createFromParquet") + PARQUETFILEPATH_FIELD_NUMBER: _ClassVar[int] + CATALOG_FIELD_NUMBER: _ClassVar[int] + SCHEMA_FIELD_NUMBER: _ClassVar[int] + TABLE_FIELD_NUMBER: _ClassVar[int] + SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] + DATAFRAMENUMBER_FIELD_NUMBER: _ClassVar[int] + CREATEFROMPARQUET_FIELD_NUMBER: _ClassVar[int] + parquetFilePath: str + catalog: str + schema: str + table: str + sessionId: str + engineIP: str + dataframeNumber: int + createFromParquet: bool + def __init__(self, parquetFilePath: _Optional[str] = ..., catalog: _Optional[str] = ..., schema: _Optional[str] = ..., table: _Optional[str] = ..., sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ..., dataframeNumber: _Optional[int] = ..., createFromParquet: bool = ...) -> None: ... + +class CreateDataFrameResponse(_message.Message): + __slots__ = ("queryId",) + QUERYID_FIELD_NUMBER: _ClassVar[int] + queryId: str + def __init__(self, queryId: _Optional[str] = ...) -> None: ... + +class ProjectionOnDataFrameRequest(_message.Message): + __slots__ = ("queryId", "dataframeNumber", "sessionId", "engineIP", "field") + QUERYID_FIELD_NUMBER: _ClassVar[int] + DATAFRAMENUMBER_FIELD_NUMBER: _ClassVar[int] + SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] + FIELD_FIELD_NUMBER: _ClassVar[int] + queryId: str + dataframeNumber: int + sessionId: str + engineIP: str + field: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, queryId: _Optional[str] = ..., dataframeNumber: _Optional[int] = ..., sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ..., field: _Optional[_Iterable[str]] = ...) -> None: ... + +class ProjectionOnDataFrameResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class AggregateOnDataFrameRequest(_message.Message): + __slots__ = ("queryId", "dataframeNumber", "sessionId", "engineIP", "aggregateFunctionMap", "groupBy") + class AggregateFunctionMapEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: AggregateFunction + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AggregateFunction, str]] = ...) -> None: ... + QUERYID_FIELD_NUMBER: _ClassVar[int] + DATAFRAMENUMBER_FIELD_NUMBER: _ClassVar[int] + SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] + AGGREGATEFUNCTIONMAP_FIELD_NUMBER: _ClassVar[int] + GROUPBY_FIELD_NUMBER: _ClassVar[int] + queryId: str + dataframeNumber: int + sessionId: str + engineIP: str + aggregateFunctionMap: _containers.ScalarMap[str, AggregateFunction] + groupBy: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, queryId: _Optional[str] = ..., dataframeNumber: _Optional[int] = ..., sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ..., aggregateFunctionMap: _Optional[_Mapping[str, AggregateFunction]] = ..., groupBy: _Optional[_Iterable[str]] = ...) -> None: ... + +class AggregateOnDataFrameResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class FilterOnDataFrameRequest(_message.Message): + __slots__ = ("queryId", "dataframeNumber", "sessionId", "engineIP", "whereClause") + QUERYID_FIELD_NUMBER: _ClassVar[int] + DATAFRAMENUMBER_FIELD_NUMBER: _ClassVar[int] + SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] + WHERECLAUSE_FIELD_NUMBER: _ClassVar[int] + queryId: str + dataframeNumber: int + sessionId: str + engineIP: str + whereClause: str + def __init__(self, queryId: _Optional[str] = ..., dataframeNumber: _Optional[int] = ..., sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ..., whereClause: _Optional[str] = ...) -> None: ... + +class FilterOnDataFrameResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class OrderByOnDataFrameRequest(_message.Message): + __slots__ = ("queryId", "dataframeNumber", "sessionId", "engineIP", "orderByFieldMap") + class OrderByFieldMapEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: SortDirection + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[SortDirection, str]] = ...) -> None: ... + QUERYID_FIELD_NUMBER: _ClassVar[int] + DATAFRAMENUMBER_FIELD_NUMBER: _ClassVar[int] + SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] + ORDERBYFIELDMAP_FIELD_NUMBER: _ClassVar[int] + queryId: str + dataframeNumber: int + sessionId: str + engineIP: str + orderByFieldMap: _containers.ScalarMap[str, SortDirection] + def __init__(self, queryId: _Optional[str] = ..., dataframeNumber: _Optional[int] = ..., sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ..., orderByFieldMap: _Optional[_Mapping[str, SortDirection]] = ...) -> None: ... + +class OrderByOnDataFrameResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class LimitOnDataFrameRequest(_message.Message): + __slots__ = ("queryId", "dataframeNumber", "sessionId", "engineIP", "fetchLimit") + QUERYID_FIELD_NUMBER: _ClassVar[int] + DATAFRAMENUMBER_FIELD_NUMBER: _ClassVar[int] + SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] + FETCHLIMIT_FIELD_NUMBER: _ClassVar[int] + queryId: str + dataframeNumber: int + sessionId: str + engineIP: str + fetchLimit: int + def __init__(self, queryId: _Optional[str] = ..., dataframeNumber: _Optional[int] = ..., sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ..., fetchLimit: _Optional[int] = ...) -> None: ... + +class LimitOnDataFrameResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ExecuteDataFrameRequest(_message.Message): + __slots__ = ("queryId", "dataframeNumber", "sessionId", "engineIP") + QUERYID_FIELD_NUMBER: _ClassVar[int] + DATAFRAMENUMBER_FIELD_NUMBER: _ClassVar[int] + SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] + queryId: str + dataframeNumber: int + sessionId: str + engineIP: str + def __init__(self, queryId: _Optional[str] = ..., dataframeNumber: _Optional[int] = ..., sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ...) -> None: ... + +class ExecuteDataFrameResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class DropUserContextRequest(_message.Message): + __slots__ = ("sessionId", "engineIP") + SESSIONID_FIELD_NUMBER: _ClassVar[int] + ENGINEIP_FIELD_NUMBER: _ClassVar[int] + sessionId: str + engineIP: str + def __init__(self, sessionId: _Optional[str] = ..., engineIP: _Optional[str] = ...) -> None: ... + +class DropUserContextResponse(_message.Message): + __slots__ = () def __init__(self) -> None: ... diff --git a/e6data_python_connector/server/e6x_engine_pb2_grpc.py b/e6data_python_connector/server/e6x_engine_pb2_grpc.py index 4b3fbf3..8c6f4b7 100644 --- a/e6data_python_connector/server/e6x_engine_pb2_grpc.py +++ b/e6data_python_connector/server/e6x_engine_pb2_grpc.py @@ -1,9 +1,33 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" import grpc - +import warnings import e6data_python_connector.server.e6x_engine_pb2 as e6x__engine__pb2 +GRPC_GENERATED_VERSION = '1.65.1' +GRPC_VERSION = grpc.__version__ +EXPECTED_ERROR_RELEASE = '1.66.0' +SCHEDULED_RELEASE_DATE = 'August 6, 2024' +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + warnings.warn( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in e6x_engine_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' + + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', + RuntimeWarning + ) + class QueryEngineServiceStub(object): """Missing associated documentation comment in .proto file.""" @@ -18,147 +42,187 @@ def __init__(self, channel): '/QueryEngineService/clear', request_serializer=e6x__engine__pb2.ClearRequest.SerializeToString, response_deserializer=e6x__engine__pb2.ClearResponse.FromString, - ) + _registered_method=True) self.cancelQuery = channel.unary_unary( '/QueryEngineService/cancelQuery', request_serializer=e6x__engine__pb2.CancelQueryRequest.SerializeToString, response_deserializer=e6x__engine__pb2.CancelQueryResponse.FromString, - ) + _registered_method=True) self.clearOrCancelQuery = channel.unary_unary( '/QueryEngineService/clearOrCancelQuery', request_serializer=e6x__engine__pb2.ClearOrCancelQueryRequest.SerializeToString, response_deserializer=e6x__engine__pb2.ClearOrCancelQueryResponse.FromString, - ) + _registered_method=True) self.explain = channel.unary_unary( '/QueryEngineService/explain', request_serializer=e6x__engine__pb2.ExplainRequest.SerializeToString, response_deserializer=e6x__engine__pb2.ExplainResponse.FromString, - ) + _registered_method=True) self.dryRun = channel.unary_unary( '/QueryEngineService/dryRun', request_serializer=e6x__engine__pb2.DryRunRequest.SerializeToString, response_deserializer=e6x__engine__pb2.DryRunResponse.FromString, - ) + _registered_method=True) self.dryRunV2 = channel.unary_unary( '/QueryEngineService/dryRunV2', request_serializer=e6x__engine__pb2.DryRunRequestV2.SerializeToString, response_deserializer=e6x__engine__pb2.DryRunResponse.FromString, - ) + _registered_method=True) self.explainAnalyze = channel.unary_unary( '/QueryEngineService/explainAnalyze', request_serializer=e6x__engine__pb2.ExplainAnalyzeRequest.SerializeToString, response_deserializer=e6x__engine__pb2.ExplainAnalyzeResponse.FromString, - ) + _registered_method=True) self.prepareStatement = channel.unary_unary( '/QueryEngineService/prepareStatement', request_serializer=e6x__engine__pb2.PrepareStatementRequest.SerializeToString, response_deserializer=e6x__engine__pb2.PrepareStatementResponse.FromString, - ) + _registered_method=True) self.prepareStatementV2 = channel.unary_unary( '/QueryEngineService/prepareStatementV2', request_serializer=e6x__engine__pb2.PrepareStatementV2Request.SerializeToString, response_deserializer=e6x__engine__pb2.PrepareStatementResponse.FromString, - ) + _registered_method=True) self.executeStatement = channel.unary_unary( '/QueryEngineService/executeStatement', request_serializer=e6x__engine__pb2.ExecuteStatementRequest.SerializeToString, response_deserializer=e6x__engine__pb2.ExecuteStatementResponse.FromString, - ) + _registered_method=True) self.executeStatementV2 = channel.unary_unary( '/QueryEngineService/executeStatementV2', request_serializer=e6x__engine__pb2.ExecuteStatementV2Request.SerializeToString, response_deserializer=e6x__engine__pb2.ExecuteStatementResponse.FromString, - ) + _registered_method=True) self.getNextResultRow = channel.unary_unary( '/QueryEngineService/getNextResultRow', request_serializer=e6x__engine__pb2.GetNextResultRowRequest.SerializeToString, response_deserializer=e6x__engine__pb2.GetNextResultRowResponse.FromString, - ) + _registered_method=True) self.getNextResultBatch = channel.unary_unary( '/QueryEngineService/getNextResultBatch', request_serializer=e6x__engine__pb2.GetNextResultBatchRequest.SerializeToString, response_deserializer=e6x__engine__pb2.GetNextResultBatchResponse.FromString, - ) + _registered_method=True) self.getResultMetadata = channel.unary_unary( '/QueryEngineService/getResultMetadata', request_serializer=e6x__engine__pb2.GetResultMetadataRequest.SerializeToString, response_deserializer=e6x__engine__pb2.GetResultMetadataResponse.FromString, - ) + _registered_method=True) self.authenticate = channel.unary_unary( '/QueryEngineService/authenticate', request_serializer=e6x__engine__pb2.AuthenticateRequest.SerializeToString, response_deserializer=e6x__engine__pb2.AuthenticateResponse.FromString, - ) + _registered_method=True) self.getTables = channel.unary_unary( '/QueryEngineService/getTables', request_serializer=e6x__engine__pb2.GetTablesRequest.SerializeToString, response_deserializer=e6x__engine__pb2.GetTablesResponse.FromString, - ) + _registered_method=True) self.getTablesV2 = channel.unary_unary( '/QueryEngineService/getTablesV2', request_serializer=e6x__engine__pb2.GetTablesV2Request.SerializeToString, response_deserializer=e6x__engine__pb2.GetTablesResponse.FromString, - ) + _registered_method=True) self.getSchemaNames = channel.unary_unary( '/QueryEngineService/getSchemaNames', request_serializer=e6x__engine__pb2.GetSchemaNamesRequest.SerializeToString, response_deserializer=e6x__engine__pb2.GetSchemaNamesResponse.FromString, - ) + _registered_method=True) self.getSchemaNamesV2 = channel.unary_unary( '/QueryEngineService/getSchemaNamesV2', request_serializer=e6x__engine__pb2.GetSchemaNamesV2Request.SerializeToString, response_deserializer=e6x__engine__pb2.GetSchemaNamesResponse.FromString, - ) + _registered_method=True) self.getColumns = channel.unary_unary( '/QueryEngineService/getColumns', request_serializer=e6x__engine__pb2.GetColumnsRequest.SerializeToString, response_deserializer=e6x__engine__pb2.GetColumnsResponse.FromString, - ) + _registered_method=True) self.getColumnsV2 = channel.unary_unary( '/QueryEngineService/getColumnsV2', request_serializer=e6x__engine__pb2.GetColumnsV2Request.SerializeToString, response_deserializer=e6x__engine__pb2.GetColumnsResponse.FromString, - ) + _registered_method=True) self.updateUsers = channel.unary_unary( '/QueryEngineService/updateUsers', request_serializer=e6x__engine__pb2.UpdateUsersRequest.SerializeToString, response_deserializer=e6x__engine__pb2.UpdateUsersResponse.FromString, - ) + _registered_method=True) self.setProps = channel.unary_unary( '/QueryEngineService/setProps', request_serializer=e6x__engine__pb2.SetPropsRequest.SerializeToString, response_deserializer=e6x__engine__pb2.SetPropsResponse.FromString, - ) + _registered_method=True) self.status = channel.unary_unary( '/QueryEngineService/status', request_serializer=e6x__engine__pb2.StatusRequest.SerializeToString, response_deserializer=e6x__engine__pb2.StatusResponse.FromString, - ) + _registered_method=True) self.addCatalogs = channel.unary_unary( '/QueryEngineService/addCatalogs', request_serializer=e6x__engine__pb2.AddCatalogsRequest.SerializeToString, response_deserializer=e6x__engine__pb2.AddCatalogsResponse.FromString, - ) + _registered_method=True) self.getAddCatalogsResponse = channel.unary_unary( '/QueryEngineService/getAddCatalogsResponse', request_serializer=e6x__engine__pb2.GetAddCatalogsRequest.SerializeToString, response_deserializer=e6x__engine__pb2.GetAddCatalogsResponse.FromString, - ) + _registered_method=True) self.getCataloges = channel.unary_unary( '/QueryEngineService/getCataloges', request_serializer=e6x__engine__pb2.GetCatalogesRequest.SerializeToString, response_deserializer=e6x__engine__pb2.GetCatalogesResponse.FromString, - ) + _registered_method=True) self.getNextRemoteCachedChunk = channel.unary_unary( '/QueryEngineService/getNextRemoteCachedChunk', request_serializer=e6x__engine__pb2.RemoteChunkRequest.SerializeToString, response_deserializer=e6x__engine__pb2.RemoteChunkResponse.FromString, - ) + _registered_method=True) self.refreshCatalogs = channel.unary_unary( '/QueryEngineService/refreshCatalogs', request_serializer=e6x__engine__pb2.RefreshCatalogsRequest.SerializeToString, response_deserializer=e6x__engine__pb2.RefreshCatalogsResponse.FromString, - ) + _registered_method=True) + self.createDataFrame = channel.unary_unary( + '/QueryEngineService/createDataFrame', + request_serializer=e6x__engine__pb2.CreateDataFrameRequest.SerializeToString, + response_deserializer=e6x__engine__pb2.CreateDataFrameResponse.FromString, + _registered_method=True) + self.projectionOnDataFrame = channel.unary_unary( + '/QueryEngineService/projectionOnDataFrame', + request_serializer=e6x__engine__pb2.ProjectionOnDataFrameRequest.SerializeToString, + response_deserializer=e6x__engine__pb2.ProjectionOnDataFrameResponse.FromString, + _registered_method=True) + self.aggregateOnDataFrame = channel.unary_unary( + '/QueryEngineService/aggregateOnDataFrame', + request_serializer=e6x__engine__pb2.AggregateOnDataFrameRequest.SerializeToString, + response_deserializer=e6x__engine__pb2.AggregateOnDataFrameResponse.FromString, + _registered_method=True) + self.filterOnDataFrame = channel.unary_unary( + '/QueryEngineService/filterOnDataFrame', + request_serializer=e6x__engine__pb2.FilterOnDataFrameRequest.SerializeToString, + response_deserializer=e6x__engine__pb2.FilterOnDataFrameResponse.FromString, + _registered_method=True) + self.orderByOnDataFrame = channel.unary_unary( + '/QueryEngineService/orderByOnDataFrame', + request_serializer=e6x__engine__pb2.OrderByOnDataFrameRequest.SerializeToString, + response_deserializer=e6x__engine__pb2.OrderByOnDataFrameResponse.FromString, + _registered_method=True) + self.limitOnDataFrame = channel.unary_unary( + '/QueryEngineService/limitOnDataFrame', + request_serializer=e6x__engine__pb2.LimitOnDataFrameRequest.SerializeToString, + response_deserializer=e6x__engine__pb2.LimitOnDataFrameResponse.FromString, + _registered_method=True) + self.executeDataFrame = channel.unary_unary( + '/QueryEngineService/executeDataFrame', + request_serializer=e6x__engine__pb2.ExecuteDataFrameRequest.SerializeToString, + response_deserializer=e6x__engine__pb2.ExecuteDataFrameResponse.FromString, + _registered_method=True) + self.dropUserContext = channel.unary_unary( + '/QueryEngineService/dropUserContext', + request_serializer=e6x__engine__pb2.DropUserContextRequest.SerializeToString, + response_deserializer=e6x__engine__pb2.DropUserContextResponse.FromString, + _registered_method=True) class QueryEngineServiceServicer(object): @@ -339,6 +403,56 @@ def refreshCatalogs(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def createDataFrame(self, request, context): + """dataframe + + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def projectionOnDataFrame(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def aggregateOnDataFrame(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def filterOnDataFrame(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def orderByOnDataFrame(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def limitOnDataFrame(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def executeDataFrame(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def dropUserContext(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_QueryEngineServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -487,10 +601,51 @@ def add_QueryEngineServiceServicer_to_server(servicer, server): request_deserializer=e6x__engine__pb2.RefreshCatalogsRequest.FromString, response_serializer=e6x__engine__pb2.RefreshCatalogsResponse.SerializeToString, ), + 'createDataFrame': grpc.unary_unary_rpc_method_handler( + servicer.createDataFrame, + request_deserializer=e6x__engine__pb2.CreateDataFrameRequest.FromString, + response_serializer=e6x__engine__pb2.CreateDataFrameResponse.SerializeToString, + ), + 'projectionOnDataFrame': grpc.unary_unary_rpc_method_handler( + servicer.projectionOnDataFrame, + request_deserializer=e6x__engine__pb2.ProjectionOnDataFrameRequest.FromString, + response_serializer=e6x__engine__pb2.ProjectionOnDataFrameResponse.SerializeToString, + ), + 'aggregateOnDataFrame': grpc.unary_unary_rpc_method_handler( + servicer.aggregateOnDataFrame, + request_deserializer=e6x__engine__pb2.AggregateOnDataFrameRequest.FromString, + response_serializer=e6x__engine__pb2.AggregateOnDataFrameResponse.SerializeToString, + ), + 'filterOnDataFrame': grpc.unary_unary_rpc_method_handler( + servicer.filterOnDataFrame, + request_deserializer=e6x__engine__pb2.FilterOnDataFrameRequest.FromString, + response_serializer=e6x__engine__pb2.FilterOnDataFrameResponse.SerializeToString, + ), + 'orderByOnDataFrame': grpc.unary_unary_rpc_method_handler( + servicer.orderByOnDataFrame, + request_deserializer=e6x__engine__pb2.OrderByOnDataFrameRequest.FromString, + response_serializer=e6x__engine__pb2.OrderByOnDataFrameResponse.SerializeToString, + ), + 'limitOnDataFrame': grpc.unary_unary_rpc_method_handler( + servicer.limitOnDataFrame, + request_deserializer=e6x__engine__pb2.LimitOnDataFrameRequest.FromString, + response_serializer=e6x__engine__pb2.LimitOnDataFrameResponse.SerializeToString, + ), + 'executeDataFrame': grpc.unary_unary_rpc_method_handler( + servicer.executeDataFrame, + request_deserializer=e6x__engine__pb2.ExecuteDataFrameRequest.FromString, + response_serializer=e6x__engine__pb2.ExecuteDataFrameResponse.SerializeToString, + ), + 'dropUserContext': grpc.unary_unary_rpc_method_handler( + servicer.dropUserContext, + request_deserializer=e6x__engine__pb2.DropUserContextRequest.FromString, + response_serializer=e6x__engine__pb2.DropUserContextResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'QueryEngineService', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('QueryEngineService', rpc_method_handlers) # This class is part of an EXPERIMENTAL API. @@ -508,11 +663,21 @@ def clear(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/clear', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/clear', e6x__engine__pb2.ClearRequest.SerializeToString, e6x__engine__pb2.ClearResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def cancelQuery(request, @@ -525,11 +690,21 @@ def cancelQuery(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/cancelQuery', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/cancelQuery', e6x__engine__pb2.CancelQueryRequest.SerializeToString, e6x__engine__pb2.CancelQueryResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def clearOrCancelQuery(request, @@ -542,11 +717,21 @@ def clearOrCancelQuery(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/clearOrCancelQuery', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/clearOrCancelQuery', e6x__engine__pb2.ClearOrCancelQueryRequest.SerializeToString, e6x__engine__pb2.ClearOrCancelQueryResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def explain(request, @@ -559,11 +744,21 @@ def explain(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/explain', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/explain', e6x__engine__pb2.ExplainRequest.SerializeToString, e6x__engine__pb2.ExplainResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def dryRun(request, @@ -576,11 +771,21 @@ def dryRun(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/dryRun', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/dryRun', e6x__engine__pb2.DryRunRequest.SerializeToString, e6x__engine__pb2.DryRunResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def dryRunV2(request, @@ -593,11 +798,21 @@ def dryRunV2(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/dryRunV2', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/dryRunV2', e6x__engine__pb2.DryRunRequestV2.SerializeToString, e6x__engine__pb2.DryRunResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def explainAnalyze(request, @@ -610,11 +825,21 @@ def explainAnalyze(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/explainAnalyze', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/explainAnalyze', e6x__engine__pb2.ExplainAnalyzeRequest.SerializeToString, e6x__engine__pb2.ExplainAnalyzeResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def prepareStatement(request, @@ -627,11 +852,21 @@ def prepareStatement(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/prepareStatement', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/prepareStatement', e6x__engine__pb2.PrepareStatementRequest.SerializeToString, e6x__engine__pb2.PrepareStatementResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def prepareStatementV2(request, @@ -644,11 +879,21 @@ def prepareStatementV2(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/prepareStatementV2', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/prepareStatementV2', e6x__engine__pb2.PrepareStatementV2Request.SerializeToString, e6x__engine__pb2.PrepareStatementResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def executeStatement(request, @@ -661,11 +906,21 @@ def executeStatement(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/executeStatement', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/executeStatement', e6x__engine__pb2.ExecuteStatementRequest.SerializeToString, e6x__engine__pb2.ExecuteStatementResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def executeStatementV2(request, @@ -678,11 +933,21 @@ def executeStatementV2(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/executeStatementV2', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/executeStatementV2', e6x__engine__pb2.ExecuteStatementV2Request.SerializeToString, e6x__engine__pb2.ExecuteStatementResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getNextResultRow(request, @@ -695,11 +960,21 @@ def getNextResultRow(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getNextResultRow', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getNextResultRow', e6x__engine__pb2.GetNextResultRowRequest.SerializeToString, e6x__engine__pb2.GetNextResultRowResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getNextResultBatch(request, @@ -712,11 +987,21 @@ def getNextResultBatch(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getNextResultBatch', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getNextResultBatch', e6x__engine__pb2.GetNextResultBatchRequest.SerializeToString, e6x__engine__pb2.GetNextResultBatchResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getResultMetadata(request, @@ -729,11 +1014,21 @@ def getResultMetadata(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getResultMetadata', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getResultMetadata', e6x__engine__pb2.GetResultMetadataRequest.SerializeToString, e6x__engine__pb2.GetResultMetadataResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def authenticate(request, @@ -746,11 +1041,21 @@ def authenticate(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/authenticate', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/authenticate', e6x__engine__pb2.AuthenticateRequest.SerializeToString, e6x__engine__pb2.AuthenticateResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getTables(request, @@ -763,11 +1068,21 @@ def getTables(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getTables', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getTables', e6x__engine__pb2.GetTablesRequest.SerializeToString, e6x__engine__pb2.GetTablesResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getTablesV2(request, @@ -780,11 +1095,21 @@ def getTablesV2(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getTablesV2', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getTablesV2', e6x__engine__pb2.GetTablesV2Request.SerializeToString, e6x__engine__pb2.GetTablesResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getSchemaNames(request, @@ -797,11 +1122,21 @@ def getSchemaNames(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getSchemaNames', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getSchemaNames', e6x__engine__pb2.GetSchemaNamesRequest.SerializeToString, e6x__engine__pb2.GetSchemaNamesResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getSchemaNamesV2(request, @@ -814,11 +1149,21 @@ def getSchemaNamesV2(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getSchemaNamesV2', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getSchemaNamesV2', e6x__engine__pb2.GetSchemaNamesV2Request.SerializeToString, e6x__engine__pb2.GetSchemaNamesResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getColumns(request, @@ -831,11 +1176,21 @@ def getColumns(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getColumns', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getColumns', e6x__engine__pb2.GetColumnsRequest.SerializeToString, e6x__engine__pb2.GetColumnsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getColumnsV2(request, @@ -848,11 +1203,21 @@ def getColumnsV2(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getColumnsV2', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getColumnsV2', e6x__engine__pb2.GetColumnsV2Request.SerializeToString, e6x__engine__pb2.GetColumnsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def updateUsers(request, @@ -865,11 +1230,21 @@ def updateUsers(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/updateUsers', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/updateUsers', e6x__engine__pb2.UpdateUsersRequest.SerializeToString, e6x__engine__pb2.UpdateUsersResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def setProps(request, @@ -882,11 +1257,21 @@ def setProps(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/setProps', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/setProps', e6x__engine__pb2.SetPropsRequest.SerializeToString, e6x__engine__pb2.SetPropsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def status(request, @@ -899,11 +1284,21 @@ def status(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/status', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/status', e6x__engine__pb2.StatusRequest.SerializeToString, e6x__engine__pb2.StatusResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def addCatalogs(request, @@ -916,11 +1311,21 @@ def addCatalogs(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/addCatalogs', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/addCatalogs', e6x__engine__pb2.AddCatalogsRequest.SerializeToString, e6x__engine__pb2.AddCatalogsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getAddCatalogsResponse(request, @@ -933,11 +1338,21 @@ def getAddCatalogsResponse(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getAddCatalogsResponse', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getAddCatalogsResponse', e6x__engine__pb2.GetAddCatalogsRequest.SerializeToString, e6x__engine__pb2.GetAddCatalogsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getCataloges(request, @@ -950,11 +1365,21 @@ def getCataloges(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getCataloges', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getCataloges', e6x__engine__pb2.GetCatalogesRequest.SerializeToString, e6x__engine__pb2.GetCatalogesResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def getNextRemoteCachedChunk(request, @@ -967,11 +1392,21 @@ def getNextRemoteCachedChunk(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/getNextRemoteCachedChunk', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/getNextRemoteCachedChunk', e6x__engine__pb2.RemoteChunkRequest.SerializeToString, e6x__engine__pb2.RemoteChunkResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def refreshCatalogs(request, @@ -984,8 +1419,234 @@ def refreshCatalogs(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/QueryEngineService/refreshCatalogs', + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/refreshCatalogs', e6x__engine__pb2.RefreshCatalogsRequest.SerializeToString, e6x__engine__pb2.RefreshCatalogsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def createDataFrame(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/createDataFrame', + e6x__engine__pb2.CreateDataFrameRequest.SerializeToString, + e6x__engine__pb2.CreateDataFrameResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def projectionOnDataFrame(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/projectionOnDataFrame', + e6x__engine__pb2.ProjectionOnDataFrameRequest.SerializeToString, + e6x__engine__pb2.ProjectionOnDataFrameResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def aggregateOnDataFrame(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/aggregateOnDataFrame', + e6x__engine__pb2.AggregateOnDataFrameRequest.SerializeToString, + e6x__engine__pb2.AggregateOnDataFrameResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def filterOnDataFrame(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/filterOnDataFrame', + e6x__engine__pb2.FilterOnDataFrameRequest.SerializeToString, + e6x__engine__pb2.FilterOnDataFrameResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def orderByOnDataFrame(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/orderByOnDataFrame', + e6x__engine__pb2.OrderByOnDataFrameRequest.SerializeToString, + e6x__engine__pb2.OrderByOnDataFrameResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def limitOnDataFrame(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/limitOnDataFrame', + e6x__engine__pb2.LimitOnDataFrameRequest.SerializeToString, + e6x__engine__pb2.LimitOnDataFrameResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def executeDataFrame(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/executeDataFrame', + e6x__engine__pb2.ExecuteDataFrameRequest.SerializeToString, + e6x__engine__pb2.ExecuteDataFrameResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def dropUserContext(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/QueryEngineService/dropUserContext', + e6x__engine__pb2.DropUserContextRequest.SerializeToString, + e6x__engine__pb2.DropUserContextResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/e6x_engine.proto b/e6x_engine.proto index d2b30b5..16c158e 100644 --- a/e6x_engine.proto +++ b/e6x_engine.proto @@ -174,8 +174,12 @@ message AuthenticateRequest{ string password = 2; } +// passing session IP as a session and session objects are local to planner +// session is per connection not per statement +// so to maintain stickiness in planner we will send session and the planner IP from which session is created message AuthenticateResponse{ string sessionId = 1; + string engineIP = 2; } message GetTablesRequest{ @@ -297,6 +301,113 @@ message ClearOrCancelQueryRequest{ message ClearOrCancelQueryResponse{ } +// DataFrame + +message CreateDataFrameRequest +{ + string parquetFilePath = 1; + string catalog = 2; + string schema = 3; + string table = 4; + string sessionId = 5; + string engineIP = 6; + int32 dataframeNumber = 7; + bool createFromParquet = 8; +} + +message CreateDataFrameResponse +{ + string queryId = 1; +} + +message ProjectionOnDataFrameRequest +{ + string queryId = 1; + int32 dataframeNumber = 2; + string sessionId = 3; + string engineIP = 4; + repeated string field = 5; +} + +message ProjectionOnDataFrameResponse {} + +message AggregateOnDataFrameRequest +{ + string queryId = 1; + int32 dataframeNumber = 2; + string sessionId = 3; + string engineIP = 4; + map aggregateFunctionMap = 5; + repeated string groupBy = 6; +} + +enum AggregateFunction +{ + SUM = 0; + COUNT = 1; + COUNT_STAR = 2; + COUNT_DISTINCT = 3; +} + +message AggregateOnDataFrameResponse {} + +message FilterOnDataFrameRequest +{ + string queryId = 1; + int32 dataframeNumber = 2; + string sessionId = 3; + string engineIP = 4; + string whereClause = 5; +} + +message FilterOnDataFrameResponse {} + +enum SortDirection +{ + ASC = 0; + DESC = 1; +} + +message OrderByOnDataFrameRequest +{ + string queryId = 1; + int32 dataframeNumber = 2; + string sessionId = 3; + string engineIP = 4; + map orderByFieldMap = 5; +} + +message OrderByOnDataFrameResponse {} + +message LimitOnDataFrameRequest +{ + string queryId = 1; + int32 dataframeNumber = 2; + string sessionId = 3; + string engineIP = 4; + int32 fetchLimit = 5; +} + +message LimitOnDataFrameResponse {} + +message ExecuteDataFrameRequest +{ + string queryId = 1; + int32 dataframeNumber = 2; + string sessionId = 3; + string engineIP = 4; +} + +message ExecuteDataFrameResponse {} + +message DropUserContextRequest +{ + string sessionId = 1; + string engineIP = 2; +} + +message DropUserContextResponse {} + service QueryEngineService { rpc clear(ClearRequest) returns (ClearResponse); @@ -355,4 +466,22 @@ service QueryEngineService { rpc getNextRemoteCachedChunk(RemoteChunkRequest) returns (RemoteChunkResponse); rpc refreshCatalogs(RefreshCatalogsRequest) returns (RefreshCatalogsResponse); + + // dataframe + + rpc createDataFrame(CreateDataFrameRequest) returns (CreateDataFrameResponse); + + rpc projectionOnDataFrame(ProjectionOnDataFrameRequest) returns (ProjectionOnDataFrameResponse); + + rpc aggregateOnDataFrame(AggregateOnDataFrameRequest) returns (AggregateOnDataFrameResponse); + + rpc filterOnDataFrame(FilterOnDataFrameRequest) returns (FilterOnDataFrameResponse); + + rpc orderByOnDataFrame(OrderByOnDataFrameRequest) returns (OrderByOnDataFrameResponse); + + rpc limitOnDataFrame(LimitOnDataFrameRequest) returns (LimitOnDataFrameResponse); + + rpc executeDataFrame(ExecuteDataFrameRequest) returns (ExecuteDataFrameResponse); + + rpc dropUserContext(DropUserContextRequest) returns (DropUserContextResponse); } \ No newline at end of file