e6data-python-connector 3.0.1rc4__py3-none-any.whl → 3.0.2__py3-none-any.whl

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.
@@ -478,6 +478,8 @@ def read_values_from_array(query_columns_description: list, dis: DataInputStream
478
478
  try:
479
479
  if dtype == "LONG":
480
480
  value_array.append(dis.read_long())
481
+ elif dtype == "INTERVAL_DAY_SECOND":
482
+ value_array.append(timedelta(microseconds=dis.read_long()))
481
483
  elif dtype == "DATE":
482
484
  value_array.append(format_iso_date_from_epoch_micros(dis.read_long()))
483
485
  elif dtype == "DATETIME":
@@ -582,6 +584,15 @@ def get_column_from_chunk(vector: Vector, strict=False) -> list:
582
584
  continue
583
585
  value_array.append(vector.data.int64Data.data[
584
586
  row] if not vector.isConstantVector else vector.data.numericConstantData.data)
587
+ elif d_type == VectorType.INTERVAL_DAY_SECOND:
588
+ for row in range(vector.size):
589
+ if get_null(vector, row):
590
+ value_array.append(None)
591
+ continue
592
+ microseconds = (vector.data.int64Data.data[row]
593
+ if not vector.isConstantVector
594
+ else vector.data.numericConstantData.data)
595
+ value_array.append(timedelta(microseconds=microseconds))
585
596
  elif d_type == VectorType.DATE:
586
597
  # Use the JDBC-parity formatter so years > 9999 emit "+YYYYY-MM-DD"
587
598
  # instead of raising. Per-row try/except keeps a single bad value
@@ -521,17 +521,18 @@ class Connection(object):
521
521
  if enable_result_batch_v2:
522
522
  from .result_decode import validate_decode_runtime
523
523
  validate_decode_runtime()
524
- normalized = {}
525
- for key, value in (grpc_options or {}).items():
526
- key = key[5:] if key.startswith('grpc.') else key
527
- if key in normalized and normalized[key] != value:
528
- raise ValueError('Conflicting gRPC options after prefix normalization.')
529
- normalized[key] = value
524
+ normalized = {}
525
+ for key, value in (grpc_options or {}).items():
526
+ key = key[5:] if key.startswith('grpc.') else key
527
+ if key in normalized and normalized[key] != value:
528
+ raise ValueError('Conflicting gRPC options after prefix normalization.')
529
+ normalized[key] = value
530
+ grpc_options = normalized
531
+ if enable_result_batch_v2:
530
532
  limit = normalized.get('max_receive_message_length', -1)
531
533
  if isinstance(limit, bool) or not isinstance(limit, int) or (limit != -1 and limit <= 0):
532
534
  raise ValueError('V2 receive limit must be a positive integer or -1 for unlimited.')
533
535
  normalized['max_receive_message_length'] = limit
534
- grpc_options = normalized
535
536
  if enable_result_batch_v2 and grpc_options is not None and 'grpc_prepare_timeout' in grpc_options:
536
537
  timeout = grpc_options['grpc_prepare_timeout']
537
538
  if (isinstance(timeout, bool) or not isinstance(timeout, (int, float))
@@ -35,6 +35,7 @@ class VectorType(object):
35
35
  NULL = 14
36
36
  TIMESTAMP_TZ = 15
37
37
  DECIMAL128 = 16
38
+ INTERVAL_DAY_SECOND = 17
38
39
 
39
40
  _VALUES_TO_NAMES = {
40
41
  0: "BINARY",
@@ -54,6 +55,7 @@ class VectorType(object):
54
55
  14: "NULL",
55
56
  15: "TIMESTAMP_TZ",
56
57
  16: "DECIMAL128",
58
+ 17: "INTERVAL_DAY_SECOND",
57
59
  }
58
60
 
59
61
  _NAMES_TO_VALUES = {
@@ -74,6 +76,7 @@ class VectorType(object):
74
76
  "NULL": 14,
75
77
  "TIMESTAMP_TZ": 15,
76
78
  "DECIMAL128": 16,
79
+ "INTERVAL_DAY_SECOND": 17,
77
80
  }
78
81
 
79
82
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: e6data-python-connector
3
- Version: 3.0.1rc4
3
+ Version: 3.0.2
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.
@@ -11,10 +11,10 @@ e6data_python_connector/cluster_manager.py,sha256=k7LbzKaX1thKiELm057X7JuOAtglPL
11
11
  e6data_python_connector/common.py,sha256=dPUbTuX0nKYjDfhVxCLevv6RCxi35DXZVgFbdM5S9vI,11748
12
12
  e6data_python_connector/connection_pool.py,sha256=GNweiefokl36ve8riwBlPaBbw5aApy0_Pjm0iqZdqbY,17918
13
13
  e6data_python_connector/constants.py,sha256=AwACS9iUaYj84oRRHj9Waep9LGbNHxcE07BABV7s45Y,1406
14
- e6data_python_connector/datainputstream.py,sha256=y81KzLaP8yKRxhmJVgXxGBmtRHEyg19b5lgD9SM_9z0,29750
14
+ e6data_python_connector/datainputstream.py,sha256=3bEXVV9LtKivpdV8Yy8FHS3GIcp4lR8HFyLWXKBIVnA,30364
15
15
  e6data_python_connector/date_time_utils.py,sha256=yjUWIx2QiGtE6Tp8hGIzh7nwF4wtJr9teB8FQ99B4TA,21305
16
16
  e6data_python_connector/dialect.py,sha256=vylcvLT2vkTZDVYA3MSHvaxqf7S-A2F9sGlLT4v9vxE,13239
17
- e6data_python_connector/e6data_grpc.py,sha256=yUbJA3yZEM3zy6WQQBTa8HsX_-zxS4MO1JFGjZ1pso8,120905
17
+ e6data_python_connector/e6data_grpc.py,sha256=ecc4C7grrs7T38WNUnwEfRFEw9q2brVwqHu_Y97qeOw,120912
18
18
  e6data_python_connector/exceptions.py,sha256=jU4C0B6zs_mBgzZ6H85KRs6Qe7QuQaWFhQjN9Xfwa1A,1504
19
19
  e6data_python_connector/oauth.py,sha256=7bMe0Wj4EpWSwYER1ny7oPtx5jEvD6Us9N8ACJB1Heo,8168
20
20
  e6data_python_connector/oauth_cache.py,sha256=jdPqp2XV0EEGHgzcBRXhTHntk1rf4VXWZZVbjhlyuk8,8403
@@ -30,7 +30,7 @@ e6data_python_connector/cluster_server/cluster_pb2.py,sha256=BWxO5vG1SVkx2y-i6A6
30
30
  e6data_python_connector/cluster_server/cluster_pb2_grpc.py,sha256=tfnRKs2GQGwdSH8zxT40yveN4XnD9j7aWHGUfGkPHiM,5399
31
31
  e6data_python_connector/e6x_vector/__init__.py,sha256=YFcZTT8Cm-6Y4oTiCaqq0DT1lw2W09WqoEc5_pTAwW0,34
32
32
  e6data_python_connector/e6x_vector/constants.py,sha256=E5Gsf7749sDKQedzdEsv-98HXUqUF8qM_THivZ34YBI,388
33
- e6data_python_connector/e6x_vector/ttypes.py,sha256=EwA4hsTDGd_oC4wpmwpRWzKwuvrX9-_Uj2TNtirkmnw,63669
33
+ e6data_python_connector/e6x_vector/ttypes.py,sha256=ZMaRvOOiDMOD-UnS_G5GOmUcdc0YiH1MCuzKHE8D1R0,63768
34
34
  e6data_python_connector/server/QueryEngineService.py,sha256=IDX2Yi9m_QFZ8L4FoiYrl8i7YL8GjTRonblKKFZsapU,198503
35
35
  e6data_python_connector/server/__init__.py,sha256=8eK3WgN4xfJiSNm4bUrnXb5ZgjMUEjdStbUahQQrJII,56
36
36
  e6data_python_connector/server/constants.py,sha256=QPD8cJw4a7t7JD4PTzbxj1CZKZ1lQ0TPK2Uzg72S9dE,366
@@ -38,7 +38,7 @@ e6data_python_connector/server/e6x_engine_pb2.py,sha256=gAtG-MclLOc_uSrn5vRVMNJx
38
38
  e6data_python_connector/server/e6x_engine_pb2.pyi,sha256=NCDX-xF2ZH1Q5k-hg27yuow1ILWsJTCAg8YD-qTQ5kY,34815
39
39
  e6data_python_connector/server/e6x_engine_pb2_grpc.py,sha256=stzKD9uSKRAOLdpFMD-owJvunnxrXvhvJnHRCGjmDzU,75778
40
40
  e6data_python_connector/server/ttypes.py,sha256=uWxwSp4m6e-7SeSEckbZtSduGYmfzXWM09iy5eltBPA,21227
41
- e6data_python_connector-3.0.1rc4.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
41
+ e6data_python_connector-3.0.2.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
42
42
  test/__init__.py,sha256=s574pVF7fqLitVI45JvBdqBMN8DBmzHG-1Te-QcnUU0,47
43
43
  test/analyze_38_nines.py,sha256=99QMuCDMUoxh5LV9JgceYSZKlChhNS_2kaV56EQBv-A,3608
44
44
  test/analyze_all_cases.py,sha256=mEeN6E_7tTl_HP4UXbQ3vREO81mqVEaxl_QPTxc6Z5Q,4079
@@ -111,8 +111,8 @@ test/integration/test_result_batch_v2.py,sha256=f2Wiqhfcq7wMNT4hSOVYSLXUIoYV9FZV
111
111
  test/integration/test_shared_token_issuance.py,sha256=PSsjZBlLq58v1Fw8scSaRwmtNkO49LcDQfG9_jmSkPM,4761
112
112
  test/integration/test_sync_oauth_lifecycle.py,sha256=HqQk1HBm0vyQmS1xMggXSSn0Pg5LJ7xnlxx2zpnRl3k,831
113
113
  test/integration/token_observation.py,sha256=uDrTFJeg8UalhJYo76c-i0Xm1SkO5bq5rlT4OP72vp4,1995
114
- e6data_python_connector-3.0.1rc4.dist-info/METADATA,sha256=monuLmCnScDlBi0w1TqVI8isc2v-FJoNb2iPBaUcgHc,40034
115
- e6data_python_connector-3.0.1rc4.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
116
- e6data_python_connector-3.0.1rc4.dist-info/entry_points.txt,sha256=KWgkagF_tw3w5RhD2tVXqrIHn8ibNg2e53LdPz78t1k,151
117
- e6data_python_connector-3.0.1rc4.dist-info/top_level.txt,sha256=uOWV7xMMlZxe030EIU4bGUuKJ-W78lKxX4YHA7YFclw,29
118
- e6data_python_connector-3.0.1rc4.dist-info/RECORD,,
114
+ e6data_python_connector-3.0.2.dist-info/METADATA,sha256=5EgZgPYWhjtrz7Fmn_MmmZ1VGQGjK8rLZ0rWE0Le3vk,40031
115
+ e6data_python_connector-3.0.2.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
116
+ e6data_python_connector-3.0.2.dist-info/entry_points.txt,sha256=KWgkagF_tw3w5RhD2tVXqrIHn8ibNg2e53LdPz78t1k,151
117
+ e6data_python_connector-3.0.2.dist-info/top_level.txt,sha256=uOWV7xMMlZxe030EIU4bGUuKJ-W78lKxX4YHA7YFclw,29
118
+ e6data_python_connector-3.0.2.dist-info/RECORD,,