e6data-python-connector 2.2.3rc1__tar.gz → 2.2.3rc4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {e6data_python_connector-2.2.3rc1/e6data_python_connector.egg-info → e6data_python_connector-2.2.3rc4}/PKG-INFO +2 -2
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/README.md +1 -1
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/cluster_manager.py +6 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/e6data_grpc.py +71 -35
- e6data_python_connector-2.2.3rc4/e6data_python_connector/server/e6x_engine_pb2.py +140 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/server/e6x_engine_pb2.pyi +59 -63
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/server/e6x_engine_pb2_grpc.py +116 -432
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4/e6data_python_connector.egg-info}/PKG-INFO +2 -2
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/setup.py +1 -1
- e6data_python_connector-2.2.3rc1/e6data_python_connector/server/e6x_engine_pb2.py +0 -141
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/LICENSE +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/MANIFEST.in +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/__init__.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/cluster_server/__init__.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/cluster_server/cluster_pb2.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/cluster_server/cluster_pb2_grpc.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/common.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/constants.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/datainputstream.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/date_time_utils.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/dialect.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/e6x_vector/__init__.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/e6x_vector/constants.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/e6x_vector/ttypes.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/exceptions.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/server/QueryEngineService.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/server/__init__.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/server/constants.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/server/ttypes.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector/typeId.py +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector.egg-info/SOURCES.txt +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector.egg-info/dependency_links.txt +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector.egg-info/entry_points.txt +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector.egg-info/requires.txt +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/e6data_python_connector.egg-info/top_level.txt +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/pyproject.toml +0 -0
- {e6data_python_connector-2.2.3rc1 → e6data_python_connector-2.2.3rc4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: e6data-python-connector
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.3rc4
|
|
4
4
|
Summary: Client for the e6data distributed SQL Engine.
|
|
5
5
|
Home-page: https://github.com/e6x-labs/e6data-python-connector
|
|
6
6
|
Author: e6data, Inc.
|
|
@@ -38,7 +38,7 @@ Dynamic: summary
|
|
|
38
38
|
|
|
39
39
|
# e6data Python Connector
|
|
40
40
|
|
|
41
|
-

|
|
42
42
|
|
|
43
43
|
## Introduction
|
|
44
44
|
|
|
@@ -220,6 +220,7 @@ class ClusterManager:
|
|
|
220
220
|
payload,
|
|
221
221
|
metadata=_get_grpc_header(cluster=self.cluster_uuid)
|
|
222
222
|
)
|
|
223
|
+
print(f'Cluster resume response: {response}')
|
|
223
224
|
elif current_status.status == 'active':
|
|
224
225
|
return True
|
|
225
226
|
elif current_status.status != 'resuming':
|
|
@@ -227,6 +228,7 @@ class ClusterManager:
|
|
|
227
228
|
If cluster cannot be resumed due to its current state,
|
|
228
229
|
or already in a process of resuming, terminate the operation.
|
|
229
230
|
"""
|
|
231
|
+
print(f'Cluster is not suspended status, raising error.')
|
|
230
232
|
return False
|
|
231
233
|
|
|
232
234
|
# Wait for the cluster to become active
|
|
@@ -240,12 +242,16 @@ class ClusterManager:
|
|
|
240
242
|
status_payload,
|
|
241
243
|
metadata=_get_grpc_header(cluster=self.cluster_uuid)
|
|
242
244
|
)
|
|
245
|
+
print(f'Cluster status response: {response}')
|
|
243
246
|
if response.status == 'active':
|
|
247
|
+
print('Cluster is now active, starting execution.')
|
|
244
248
|
lock.set_active()
|
|
245
249
|
return True
|
|
246
250
|
if response.status in ['suspended', 'failed']:
|
|
251
|
+
print(f'Trying to resume the cluster, found status: {response.status}, raising error.')
|
|
247
252
|
return False
|
|
248
253
|
if time.time() > self._timeout:
|
|
254
|
+
print('Cluster resume timed out.')
|
|
249
255
|
return False
|
|
250
256
|
except _InactiveRpcError as e:
|
|
251
257
|
pass
|
|
@@ -11,6 +11,7 @@ import datetime
|
|
|
11
11
|
import logging
|
|
12
12
|
import re
|
|
13
13
|
import sys
|
|
14
|
+
import time
|
|
14
15
|
from decimal import Decimal
|
|
15
16
|
from io import BytesIO
|
|
16
17
|
from ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
|
@@ -68,14 +69,22 @@ TYPES_CONVERTER = {
|
|
|
68
69
|
|
|
69
70
|
def re_auth(func):
|
|
70
71
|
def wrapper(self, *args, **kwargs):
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
self.connection.get_re_authenticate_session_id()
|
|
72
|
+
max_retry = 5
|
|
73
|
+
current_retry = 0
|
|
74
|
+
while current_retry < max_retry:
|
|
75
|
+
try:
|
|
76
76
|
return func(self, *args, **kwargs)
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
except _InactiveRpcError as e:
|
|
78
|
+
current_retry += 1
|
|
79
|
+
if current_retry == max_retry:
|
|
80
|
+
raise e
|
|
81
|
+
if e.code() == grpc.StatusCode.INTERNAL and 'Access denied' in e.details():
|
|
82
|
+
time.sleep(0.2)
|
|
83
|
+
_logger.info(f'RE_AUTH: Function Name: {func}')
|
|
84
|
+
_logger.info(f'RE_AUTH: Error Found {e}')
|
|
85
|
+
self.connection.get_re_authenticate_session_id()
|
|
86
|
+
else:
|
|
87
|
+
raise e
|
|
79
88
|
|
|
80
89
|
return wrapper
|
|
81
90
|
|
|
@@ -165,6 +174,7 @@ class Connection(object):
|
|
|
165
174
|
- max_receive_message_length: This parameter sets the maximum allowed size (in bytes) for incoming messages on the gRPC server.
|
|
166
175
|
- max_send_message_length: Similar to max_receive_message_length, this parameter sets the maximum allowed size (in bytes) for outgoing messages from the gRPC client
|
|
167
176
|
- grpc_prepare_timeout: Timeout for prepare statement API call (default to 10 minutes).
|
|
177
|
+
- keepalive_time_ms: This parameter defines the time, in milliseconds, Default to 30 seconds
|
|
168
178
|
"""
|
|
169
179
|
if not username or not password:
|
|
170
180
|
raise ValueError("username or password cannot be empty.")
|
|
@@ -184,39 +194,70 @@ class Connection(object):
|
|
|
184
194
|
|
|
185
195
|
self._auto_resume = auto_resume
|
|
186
196
|
|
|
187
|
-
self.
|
|
188
|
-
self.
|
|
189
|
-
|
|
190
|
-
self.grpc_prepare_timeout = 10 * 60 # 10 minutes
|
|
191
|
-
self._planner_ip = None
|
|
192
|
-
|
|
193
|
-
if isinstance(grpc_options, dict):
|
|
194
|
-
self._keepalive_timeout_ms = grpc_options.get('keepalive_timeout_ms') or self._keepalive_timeout_ms
|
|
195
|
-
self._max_receive_message_length = grpc_options.get(
|
|
196
|
-
'max_receive_message_length') or self._max_receive_message_length
|
|
197
|
-
self._max_send_message_length = grpc_options.get('max_send_message_length') or self._max_send_message_length
|
|
198
|
-
self.grpc_prepare_timeout = grpc_options.get('grpc_prepare_timeout') or self.grpc_prepare_timeout
|
|
197
|
+
self._grpc_options = grpc_options
|
|
198
|
+
if self._grpc_options is None:
|
|
199
|
+
self._grpc_options = dict()
|
|
200
|
+
self.grpc_prepare_timeout = self._grpc_options.get('grpc_prepare_timeout') or 10 * 60 # 10 minutes
|
|
199
201
|
self._create_client()
|
|
200
202
|
|
|
203
|
+
@property
|
|
204
|
+
def _get_grpc_options(self):
|
|
205
|
+
"""
|
|
206
|
+
Property to get gRPC options for the connection.
|
|
207
|
+
|
|
208
|
+
This method checks if the gRPC options are already cached. If not, it creates a copy of the
|
|
209
|
+
provided gRPC options and merges them with the default options. The merged options are then
|
|
210
|
+
cached for future use.
|
|
211
|
+
|
|
212
|
+
Returns:
|
|
213
|
+
list: A list of tuples containing gRPC options.
|
|
214
|
+
"""
|
|
215
|
+
if not hasattr(self, '_cached_grpc_options'):
|
|
216
|
+
grpc_options = self._grpc_options.copy()
|
|
217
|
+
default_options = {
|
|
218
|
+
"keepalive_timeout_ms": 900000, # Time in milliseconds to keep the connection alive.
|
|
219
|
+
"max_receive_message_length": -1, # Maximum size of received messages.
|
|
220
|
+
"max_send_message_length": 300 * 1024 * 1024, # Maximum size of sent messages (300 MB).
|
|
221
|
+
"grpc_prepare_timeout": self.grpc_prepare_timeout, # Timeout for prepare statement API call.
|
|
222
|
+
"keepalive_time_ms": 30000, # Time in milliseconds between keep-alive pings.
|
|
223
|
+
"keepalive_permit_without_calls": 1, # Allow keep-alives with no active RPCs.
|
|
224
|
+
"http2.max_pings_without_data": 0, # Unlimited pings without data.
|
|
225
|
+
"http2.min_time_between_pings_ms": 15000, # Minimum time between pings (15 seconds).
|
|
226
|
+
"http2.min_ping_interval_without_data_ms": 15000, # Minimum interval between pings without data (15 seconds).
|
|
227
|
+
}
|
|
228
|
+
if grpc_options:
|
|
229
|
+
for key, value in grpc_options.items():
|
|
230
|
+
default_options[key] = value
|
|
231
|
+
|
|
232
|
+
self._cached_grpc_options = [(f'grpc.{key}', value) for key, value in default_options.items()]
|
|
233
|
+
|
|
234
|
+
return self._cached_grpc_options
|
|
235
|
+
|
|
201
236
|
def _create_client(self):
|
|
237
|
+
"""
|
|
238
|
+
Creates a gRPC client for the connection.
|
|
239
|
+
|
|
240
|
+
This method initializes a gRPC channel based on whether a secure channel is required or not.
|
|
241
|
+
It then creates a client stub for the QueryEngineService.
|
|
242
|
+
|
|
243
|
+
If the secure channel is enabled, it uses `grpc.secure_channel` with SSL credentials.
|
|
244
|
+
Otherwise, it uses `grpc.insecure_channel`.
|
|
245
|
+
|
|
246
|
+
The gRPC options are retrieved from the `_get_grpc_options` property.
|
|
247
|
+
|
|
248
|
+
Raises:
|
|
249
|
+
grpc.RpcError: If there is an error in creating the gRPC channel or client stub.
|
|
250
|
+
"""
|
|
202
251
|
if self._secure_channel:
|
|
203
252
|
self._channel = grpc.secure_channel(
|
|
204
253
|
target='{}:{}'.format(self._host, self._port),
|
|
205
|
-
options=
|
|
206
|
-
("grpc.keepalive_timeout_ms", self._keepalive_timeout_ms),
|
|
207
|
-
('grpc.max_send_message_length', self._max_send_message_length),
|
|
208
|
-
('grpc.max_receive_message_length', self._max_receive_message_length)
|
|
209
|
-
],
|
|
254
|
+
options=self._get_grpc_options,
|
|
210
255
|
credentials=grpc.ssl_channel_credentials()
|
|
211
256
|
)
|
|
212
257
|
else:
|
|
213
258
|
self._channel = grpc.insecure_channel(
|
|
214
259
|
target='{}:{}'.format(self._host, self._port),
|
|
215
|
-
options=
|
|
216
|
-
("grpc.keepalive_timeout_ms", self._keepalive_timeout_ms),
|
|
217
|
-
('grpc.max_send_message_length', self._max_send_message_length),
|
|
218
|
-
('grpc.max_receive_message_length', self._max_receive_message_length)
|
|
219
|
-
]
|
|
260
|
+
options=self._get_grpc_options
|
|
220
261
|
)
|
|
221
262
|
self._client = e6x_engine_pb2_grpc.QueryEngineServiceStub(self._channel)
|
|
222
263
|
|
|
@@ -241,7 +282,6 @@ class Connection(object):
|
|
|
241
282
|
metadata=_get_grpc_header(cluster=self.cluster_uuid)
|
|
242
283
|
)
|
|
243
284
|
self._session_id = authenticate_response.sessionId
|
|
244
|
-
self._planner_ip = authenticate_response.plannerIp
|
|
245
285
|
if not self._session_id:
|
|
246
286
|
raise ValueError("Invalid credentials.")
|
|
247
287
|
except _InactiveRpcError as e:
|
|
@@ -265,7 +305,6 @@ class Connection(object):
|
|
|
265
305
|
metadata=_get_grpc_header(cluster=self.cluster_uuid)
|
|
266
306
|
)
|
|
267
307
|
self._session_id = authenticate_response.sessionId
|
|
268
|
-
self._planner_ip = authenticate_response.plannerIp
|
|
269
308
|
else:
|
|
270
309
|
raise e
|
|
271
310
|
else:
|
|
@@ -423,8 +462,6 @@ class Cursor(DBAPICursor):
|
|
|
423
462
|
|
|
424
463
|
@property
|
|
425
464
|
def metadata(self):
|
|
426
|
-
if not self._engine_ip:
|
|
427
|
-
self._engine_ip = self.connection._planner_ip
|
|
428
465
|
return _get_grpc_header(engine_ip=self._engine_ip, cluster=self.connection.cluster_uuid)
|
|
429
466
|
|
|
430
467
|
@property
|
|
@@ -570,8 +607,7 @@ class Cursor(DBAPICursor):
|
|
|
570
607
|
sessionId=self.connection.get_session_id,
|
|
571
608
|
schema=self._database,
|
|
572
609
|
catalog=self._catalog_name,
|
|
573
|
-
queryString=sql
|
|
574
|
-
plannerIp=self._engine_ip
|
|
610
|
+
queryString=sql
|
|
575
611
|
)
|
|
576
612
|
prepare_statement_response = client.prepareStatementV2(
|
|
577
613
|
prepare_statement_request,
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: e6x_engine.proto
|
|
4
|
+
"""Generated protocol buffer code."""
|
|
5
|
+
from google.protobuf import descriptor as _descriptor
|
|
6
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
7
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
8
|
+
from google.protobuf.internal import builder as _builder
|
|
9
|
+
# @@protoc_insertion_point(imports)
|
|
10
|
+
|
|
11
|
+
_sym_db = _symbol_database.Default()
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
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')
|
|
17
|
+
|
|
18
|
+
_globals = globals()
|
|
19
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
20
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'e6x_engine_pb2', _globals)
|
|
21
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
22
|
+
DESCRIPTOR._options = None
|
|
23
|
+
DESCRIPTOR._serialized_options = b'P\001'
|
|
24
|
+
_globals['_GFIELDINFO']._serialized_start=20
|
|
25
|
+
_globals['_GFIELDINFO']._serialized_end=70
|
|
26
|
+
_globals['_FAILEDSCHEMAELEMENT']._serialized_start=72
|
|
27
|
+
_globals['_FAILEDSCHEMAELEMENT']._serialized_end=137
|
|
28
|
+
_globals['_GETADDCATALOGSRESPONSE']._serialized_start=139
|
|
29
|
+
_globals['_GETADDCATALOGSRESPONSE']._serialized_end=219
|
|
30
|
+
_globals['_CATALOGRESPONSE']._serialized_start=221
|
|
31
|
+
_globals['_CATALOGRESPONSE']._serialized_end=271
|
|
32
|
+
_globals['_PARAMETERVALUE']._serialized_start=273
|
|
33
|
+
_globals['_PARAMETERVALUE']._serialized_end=333
|
|
34
|
+
_globals['_CLEARREQUEST']._serialized_start=335
|
|
35
|
+
_globals['_CLEARREQUEST']._serialized_end=403
|
|
36
|
+
_globals['_CLEARRESPONSE']._serialized_start=405
|
|
37
|
+
_globals['_CLEARRESPONSE']._serialized_end=420
|
|
38
|
+
_globals['_CANCELQUERYREQUEST']._serialized_start=422
|
|
39
|
+
_globals['_CANCELQUERYREQUEST']._serialized_end=496
|
|
40
|
+
_globals['_CANCELQUERYRESPONSE']._serialized_start=498
|
|
41
|
+
_globals['_CANCELQUERYRESPONSE']._serialized_end=519
|
|
42
|
+
_globals['_EXPLAINREQUEST']._serialized_start=521
|
|
43
|
+
_globals['_EXPLAINREQUEST']._serialized_end=591
|
|
44
|
+
_globals['_EXPLAINRESPONSE']._serialized_start=593
|
|
45
|
+
_globals['_EXPLAINRESPONSE']._serialized_end=627
|
|
46
|
+
_globals['_DRYRUNREQUEST']._serialized_start=629
|
|
47
|
+
_globals['_DRYRUNREQUEST']._serialized_end=718
|
|
48
|
+
_globals['_DRYRUNRESPONSE']._serialized_start=720
|
|
49
|
+
_globals['_DRYRUNRESPONSE']._serialized_end=757
|
|
50
|
+
_globals['_DRYRUNREQUESTV2']._serialized_start=759
|
|
51
|
+
_globals['_DRYRUNREQUESTV2']._serialized_end=867
|
|
52
|
+
_globals['_EXPLAINANALYZEREQUEST']._serialized_start=869
|
|
53
|
+
_globals['_EXPLAINANALYZEREQUEST']._serialized_end=946
|
|
54
|
+
_globals['_EXPLAINANALYZERESPONSE']._serialized_start=948
|
|
55
|
+
_globals['_EXPLAINANALYZERESPONSE']._serialized_end=1057
|
|
56
|
+
_globals['_PREPARESTATEMENTREQUEST']._serialized_start=1059
|
|
57
|
+
_globals['_PREPARESTATEMENTREQUEST']._serialized_end=1157
|
|
58
|
+
_globals['_PREPARESTATEMENTV2REQUEST']._serialized_start=1159
|
|
59
|
+
_globals['_PREPARESTATEMENTV2REQUEST']._serialized_end=1276
|
|
60
|
+
_globals['_PREPARESTATEMENTRESPONSE']._serialized_start=1278
|
|
61
|
+
_globals['_PREPARESTATEMENTRESPONSE']._serialized_end=1339
|
|
62
|
+
_globals['_USERACCESSINFO']._serialized_start=1341
|
|
63
|
+
_globals['_USERACCESSINFO']._serialized_end=1405
|
|
64
|
+
_globals['_EXECUTESTATEMENTREQUEST']._serialized_start=1407
|
|
65
|
+
_globals['_EXECUTESTATEMENTREQUEST']._serialized_end=1510
|
|
66
|
+
_globals['_EXECUTESTATEMENTV2REQUEST']._serialized_start=1513
|
|
67
|
+
_globals['_EXECUTESTATEMENTV2REQUEST']._serialized_end=1651
|
|
68
|
+
_globals['_EXECUTESTATEMENTRESPONSE']._serialized_start=1653
|
|
69
|
+
_globals['_EXECUTESTATEMENTRESPONSE']._serialized_end=1679
|
|
70
|
+
_globals['_GETNEXTRESULTROWREQUEST']._serialized_start=1681
|
|
71
|
+
_globals['_GETNEXTRESULTROWREQUEST']._serialized_end=1760
|
|
72
|
+
_globals['_GETNEXTRESULTROWRESPONSE']._serialized_start=1762
|
|
73
|
+
_globals['_GETNEXTRESULTROWRESPONSE']._serialized_end=1807
|
|
74
|
+
_globals['_GETNEXTRESULTBATCHREQUEST']._serialized_start=1809
|
|
75
|
+
_globals['_GETNEXTRESULTBATCHREQUEST']._serialized_end=1928
|
|
76
|
+
_globals['_GETNEXTRESULTBATCHRESPONSE']._serialized_start=1930
|
|
77
|
+
_globals['_GETNEXTRESULTBATCHRESPONSE']._serialized_end=1979
|
|
78
|
+
_globals['_GETRESULTMETADATAREQUEST']._serialized_start=1981
|
|
79
|
+
_globals['_GETRESULTMETADATAREQUEST']._serialized_end=2061
|
|
80
|
+
_globals['_GETRESULTMETADATARESPONSE']._serialized_start=2063
|
|
81
|
+
_globals['_GETRESULTMETADATARESPONSE']._serialized_end=2114
|
|
82
|
+
_globals['_AUTHENTICATEREQUEST']._serialized_start=2116
|
|
83
|
+
_globals['_AUTHENTICATEREQUEST']._serialized_end=2169
|
|
84
|
+
_globals['_AUTHENTICATERESPONSE']._serialized_start=2171
|
|
85
|
+
_globals['_AUTHENTICATERESPONSE']._serialized_end=2212
|
|
86
|
+
_globals['_GETTABLESREQUEST']._serialized_start=2214
|
|
87
|
+
_globals['_GETTABLESREQUEST']._serialized_end=2267
|
|
88
|
+
_globals['_GETTABLESV2REQUEST']._serialized_start=2269
|
|
89
|
+
_globals['_GETTABLESV2REQUEST']._serialized_end=2341
|
|
90
|
+
_globals['_GETTABLESRESPONSE']._serialized_start=2343
|
|
91
|
+
_globals['_GETTABLESRESPONSE']._serialized_end=2378
|
|
92
|
+
_globals['_GETSCHEMANAMESREQUEST']._serialized_start=2380
|
|
93
|
+
_globals['_GETSCHEMANAMESREQUEST']._serialized_end=2422
|
|
94
|
+
_globals['_GETSCHEMANAMESV2REQUEST']._serialized_start=2424
|
|
95
|
+
_globals['_GETSCHEMANAMESV2REQUEST']._serialized_end=2485
|
|
96
|
+
_globals['_GETSCHEMANAMESRESPONSE']._serialized_start=2487
|
|
97
|
+
_globals['_GETSCHEMANAMESRESPONSE']._serialized_end=2528
|
|
98
|
+
_globals['_GETCOLUMNSREQUEST']._serialized_start=2530
|
|
99
|
+
_globals['_GETCOLUMNSREQUEST']._serialized_end=2599
|
|
100
|
+
_globals['_GETCOLUMNSV2REQUEST']._serialized_start=2601
|
|
101
|
+
_globals['_GETCOLUMNSV2REQUEST']._serialized_end=2689
|
|
102
|
+
_globals['_GETCOLUMNSRESPONSE']._serialized_start=2691
|
|
103
|
+
_globals['_GETCOLUMNSRESPONSE']._serialized_end=2743
|
|
104
|
+
_globals['_STATUSREQUEST']._serialized_start=2745
|
|
105
|
+
_globals['_STATUSREQUEST']._serialized_end=2814
|
|
106
|
+
_globals['_STATUSRESPONSE']._serialized_start=2816
|
|
107
|
+
_globals['_STATUSRESPONSE']._serialized_end=2866
|
|
108
|
+
_globals['_ADDCATALOGSREQUEST']._serialized_start=2868
|
|
109
|
+
_globals['_ADDCATALOGSREQUEST']._serialized_end=2921
|
|
110
|
+
_globals['_UPDATEUSERSREQUEST']._serialized_start=2923
|
|
111
|
+
_globals['_UPDATEUSERSREQUEST']._serialized_end=2958
|
|
112
|
+
_globals['_UPDATEUSERSRESPONSE']._serialized_start=2960
|
|
113
|
+
_globals['_UPDATEUSERSRESPONSE']._serialized_end=2981
|
|
114
|
+
_globals['_SETPROPSREQUEST']._serialized_start=2983
|
|
115
|
+
_globals['_SETPROPSREQUEST']._serialized_end=3034
|
|
116
|
+
_globals['_SETPROPSRESPONSE']._serialized_start=3036
|
|
117
|
+
_globals['_SETPROPSRESPONSE']._serialized_end=3054
|
|
118
|
+
_globals['_GETADDCATALOGSREQUEST']._serialized_start=3056
|
|
119
|
+
_globals['_GETADDCATALOGSREQUEST']._serialized_end=3098
|
|
120
|
+
_globals['_ADDCATALOGSRESPONSE']._serialized_start=3100
|
|
121
|
+
_globals['_ADDCATALOGSRESPONSE']._serialized_end=3121
|
|
122
|
+
_globals['_GETCATALOGESREQUEST']._serialized_start=3123
|
|
123
|
+
_globals['_GETCATALOGESREQUEST']._serialized_end=3144
|
|
124
|
+
_globals['_GETCATALOGESRESPONSE']._serialized_start=3146
|
|
125
|
+
_globals['_GETCATALOGESRESPONSE']._serialized_end=3212
|
|
126
|
+
_globals['_REFRESHCATALOGSREQUEST']._serialized_start=3214
|
|
127
|
+
_globals['_REFRESHCATALOGSREQUEST']._serialized_end=3257
|
|
128
|
+
_globals['_REFRESHCATALOGSRESPONSE']._serialized_start=3259
|
|
129
|
+
_globals['_REFRESHCATALOGSRESPONSE']._serialized_end=3284
|
|
130
|
+
_globals['_REMOTECHUNKREQUEST']._serialized_start=3286
|
|
131
|
+
_globals['_REMOTECHUNKREQUEST']._serialized_end=3374
|
|
132
|
+
_globals['_REMOTECHUNKRESPONSE']._serialized_start=3376
|
|
133
|
+
_globals['_REMOTECHUNKRESPONSE']._serialized_end=3427
|
|
134
|
+
_globals['_CLEARORCANCELQUERYREQUEST']._serialized_start=3429
|
|
135
|
+
_globals['_CLEARORCANCELQUERYREQUEST']._serialized_end=3510
|
|
136
|
+
_globals['_CLEARORCANCELQUERYRESPONSE']._serialized_start=3512
|
|
137
|
+
_globals['_CLEARORCANCELQUERYRESPONSE']._serialized_end=3540
|
|
138
|
+
_globals['_QUERYENGINESERVICE']._serialized_start=3543
|
|
139
|
+
_globals['_QUERYENGINESERVICE']._serialized_end=5377
|
|
140
|
+
# @@protoc_insertion_point(module_scope)
|