singlestoredb 1.6.1__cp38-abi3-win_amd64.whl → 1.6.3__cp38-abi3-win_amd64.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.

Potentially problematic release.


This version of singlestoredb might be problematic. Click here for more details.

_singlestoredb_accel.pyd CHANGED
Binary file
singlestoredb/__init__.py CHANGED
@@ -13,7 +13,7 @@ Examples
13
13
 
14
14
  """
15
15
 
16
- __version__ = '1.6.1'
16
+ __version__ = '1.6.3'
17
17
 
18
18
  from typing import Any
19
19
 
singlestoredb/config.py CHANGED
@@ -103,6 +103,13 @@ register_option(
103
103
  environ='SINGLESTOREDB_MULTI_STATEMENTS',
104
104
  )
105
105
 
106
+ register_option(
107
+ 'client_found_rows', 'bool', check_bool, False,
108
+ 'Should affected_rows in OK_PACKET indicate the '
109
+ 'number of matched rows instead of changed?',
110
+ environ='SINGLESTOREDB_CLIENT_FOUND_ROWS',
111
+ )
112
+
106
113
  register_option(
107
114
  'ssl_key', 'str', check_str, None,
108
115
  'File containing SSL key',
@@ -1298,6 +1298,7 @@ def connect(
1298
1298
  program_name: Optional[str] = None,
1299
1299
  conn_attrs: Optional[Dict[str, str]] = None,
1300
1300
  multi_statements: Optional[bool] = None,
1301
+ client_found_rows: Optional[bool] = None,
1301
1302
  connect_timeout: Optional[int] = None,
1302
1303
  nan_as_null: Optional[bool] = None,
1303
1304
  inf_as_null: Optional[bool] = None,
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  import abc
3
3
  import functools
4
+ import os
4
5
  import re
5
6
  import sys
6
7
  import textwrap
@@ -543,6 +544,7 @@ class SQLHandler(NodeVisitor):
543
544
 
544
545
  _grammar: str = CORE_GRAMMAR
545
546
  _is_compiled: bool = False
547
+ _enabled: bool = True
546
548
 
547
549
  def __init__(self, connection: Connection):
548
550
  self.connection = connection
@@ -581,6 +583,11 @@ class SQLHandler(NodeVisitor):
581
583
  Overwrite an existing command with the same name?
582
584
 
583
585
  """
586
+ if not cls._enabled and \
587
+ os.environ.get('SINGLESTOREDB_FUSION_ENABLE_HIDDEN', '0').lower() not in \
588
+ ['1', 't', 'true', 'y', 'yes']:
589
+ return
590
+
584
591
  from . import registry
585
592
  cls.compile()
586
593
  registry.register_handler(cls, overwrite=overwrite)
@@ -122,6 +122,8 @@ class ScheduleJobHandler(SQLHandler):
122
122
  ;
123
123
  """
124
124
 
125
+ _enabled = False
126
+
125
127
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
126
128
  res = FusionSQLResult()
127
129
  res.add_field('JobID', result.STRING)
@@ -222,6 +224,8 @@ class RunJobHandler(SQLHandler):
222
224
 
223
225
  """
224
226
 
227
+ _enabled = False
228
+
225
229
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
226
230
  res = FusionSQLResult()
227
231
  res.add_field('JobID', result.STRING)
@@ -284,6 +288,8 @@ class WaitOnJobsHandler(SQLHandler):
284
288
 
285
289
  """
286
290
 
291
+ _enabled = False
292
+
287
293
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
288
294
  res = FusionSQLResult()
289
295
  res.add_field('Success', result.BOOL)
@@ -353,6 +359,8 @@ class ShowJobsHandler(SQLHandler):
353
359
 
354
360
  """
355
361
 
362
+ _enabled = False
363
+
356
364
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
357
365
  res = FusionSQLResult()
358
366
  res.add_field('JobID', result.STRING)
@@ -484,6 +492,8 @@ class ShowJobExecutionsHandler(SQLHandler):
484
492
  EXTENDED;
485
493
  """
486
494
 
495
+ _enabled = False
496
+
487
497
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
488
498
  res = FusionSQLResult()
489
499
  res.add_field('ExecutionID', result.STRING)
@@ -554,6 +564,8 @@ class ShowJobParametersHandler(SQLHandler):
554
564
  SHOW JOB PARAMETERS FOR 'job1';
555
565
  """
556
566
 
567
+ _enabled = False
568
+
557
569
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
558
570
  res = FusionSQLResult()
559
571
  res.add_field('Name', result.STRING)
@@ -594,6 +606,8 @@ class ShowJobRuntimesHandler(SQLHandler):
594
606
  SHOW JOB RUNTIMES;
595
607
  """
596
608
 
609
+ _enabled = False
610
+
597
611
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
598
612
  res = FusionSQLResult()
599
613
  res.add_field('Name', result.STRING)
@@ -639,6 +653,8 @@ class DropJobHandler(SQLHandler):
639
653
  DROP JOBS 'job1', 'job2';
640
654
  """
641
655
 
656
+ _enabled = False
657
+
642
658
  def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
643
659
  res = FusionSQLResult()
644
660
  res.add_field('JobID', result.STRING)
@@ -386,6 +386,8 @@ class Cursor(connection.Cursor):
386
386
  """
387
387
  if self._connection is None:
388
388
  raise ProgrammingError(errno=2048, msg='Connection is closed.')
389
+ if 'timeout' not in kwargs:
390
+ kwargs['timeout'] = self._connection.connection_params['connect_timeout']
389
391
  return self._connection._post(path, *args, **kwargs)
390
392
 
391
393
  def callproc(
@@ -1126,9 +1128,6 @@ class Connection(connection.Connection):
1126
1128
 
1127
1129
  self._sync_connection(kwargs)
1128
1130
 
1129
- if 'timeout' not in kwargs:
1130
- kwargs['timeout'] = get_option('connect_timeout')
1131
-
1132
1131
  return self._sess.post(urljoin(self._url, path), *args, **kwargs)
1133
1132
 
1134
1133
  def close(self) -> None:
@@ -347,6 +347,7 @@ class Connection(BaseConnection):
347
347
  driver=None, # internal use
348
348
  conn_attrs=None,
349
349
  multi_statements=None,
350
+ client_found_rows=None,
350
351
  nan_as_null=None,
351
352
  inf_as_null=None,
352
353
  encoding_errors='strict',
@@ -380,6 +381,8 @@ class Connection(BaseConnection):
380
381
  client_flag |= CLIENT.LOCAL_FILES
381
382
  if multi_statements:
382
383
  client_flag |= CLIENT.MULTI_STATEMENTS
384
+ if client_found_rows:
385
+ client_flag |= CLIENT.FOUND_ROWS
383
386
 
384
387
  if read_default_group and not read_default_file:
385
388
  if sys.platform.startswith('win'):
@@ -1197,6 +1197,64 @@ class TestBasics(unittest.TestCase):
1197
1197
  cur.execute('SELECT * FROM badutf8')
1198
1198
  list(cur)
1199
1199
 
1200
+ def test_character_lengths(self):
1201
+ if 'http' in self.conn.driver:
1202
+ self.skipTest('Character lengths too long for HTTP interface')
1203
+
1204
+ tbl_id = str(id(self))
1205
+
1206
+ self.cur.execute('DROP TABLE IF EXISTS test_character_lengths')
1207
+ self.cur.execute(rf'''
1208
+ CREATE TABLE `test_character_lengths_{tbl_id}` (
1209
+ `id` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
1210
+ `char_col` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
1211
+ `int_col` INT,
1212
+ PRIMARY KEY (`id`),
1213
+ SORT KEY `id` (`id`)
1214
+ ) AUTOSTATS_CARDINALITY_MODE=INCREMENTAL
1215
+ AUTOSTATS_HISTOGRAM_MODE=CREATE
1216
+ AUTOSTATS_SAMPLING=ON
1217
+ SQL_MODE='STRICT_ALL_TABLES'
1218
+ ''')
1219
+
1220
+ CHAR_STR_SHORT = 'a'
1221
+ CHAR_STR_LONG = 'a' * (2**8-1)
1222
+ SHORT_STR_SHORT = 'a' * ((2**8-1) + 1)
1223
+ SHORT_STR_LONG = 'a' * (2**16-1)
1224
+ INT24_STR_SHORT = 'a' * ((2**16-1) + 1)
1225
+ INT24_STR_LONG = 'a' * (2**24-1)
1226
+ INT64_STR_SHORT = 'a' * ((2**24-1) + 1)
1227
+ INT64_STR_LONG = 'a' * ((2**24-1) + 100000)
1228
+
1229
+ data = [
1230
+ ['CHAR_SHORT', CHAR_STR_SHORT, 123456],
1231
+ ['CHAR_LONG', CHAR_STR_LONG, 123456],
1232
+ ['SHORT_SHORT', SHORT_STR_SHORT, 123456],
1233
+ ['SHORT_LONG', SHORT_STR_LONG, 123456],
1234
+ ['INT24_SHORT', INT24_STR_SHORT, 123456],
1235
+ ['INT24_LONG', INT24_STR_LONG, 123456],
1236
+ ['INT64_SHORT', INT64_STR_SHORT, 123456],
1237
+ ['INT64_LONG', INT64_STR_LONG, 123456],
1238
+ ]
1239
+
1240
+ self.cur.executemany(
1241
+ f'INSERT INTO test_character_lengths_{tbl_id}(id, char_col, int_col) '
1242
+ 'VALUES (%s, %s, %s)', data,
1243
+ )
1244
+
1245
+ for i, row in enumerate(data):
1246
+ self.cur.execute(
1247
+ f'SELECT id, char_col, int_col FROM test_character_lengths_{tbl_id} '
1248
+ 'WHERE id = %s',
1249
+ [row[0]],
1250
+ )
1251
+ assert data[i] == list(list(self.cur)[0])
1252
+
1253
+ try:
1254
+ self.cur.execute(f'DROP TABLE test_character_lengths_{tbl_id}')
1255
+ except Exception:
1256
+ pass
1257
+
1200
1258
 
1201
1259
  if __name__ == '__main__':
1202
1260
  import nose2
@@ -2776,6 +2776,39 @@ class TestConnection(unittest.TestCase):
2776
2776
  self.assertEqual([(2,)], list(cur))
2777
2777
  self.assertIsNone(cur.nextset())
2778
2778
 
2779
+ def test_client_found_rows(self):
2780
+ if self.conn.driver not in ['http', 'https']:
2781
+ with s2.connect(database=type(self).dbname, client_found_rows=False) as conn:
2782
+ with conn.cursor() as cur:
2783
+ tag = str(uuid.uuid4()).replace('-', '_')
2784
+ table_name = f'test_client_found_rows_{tag}'
2785
+ cur.execute(f"CREATE TABLE {table_name} (id BIGINT \
2786
+ PRIMARY KEY, s TEXT DEFAULT 'def');")
2787
+ cur.execute(f'INSERT INTO {table_name} (id) \
2788
+ VALUES (1), (2), (3);')
2789
+ cur.execute(f"UPDATE {table_name} SET s = 'def' \
2790
+ WHERE id = 1;")
2791
+ # UPDATE statement above is not changing any rows,
2792
+ # so affected_rows is 0 if client_found_rows is False (default)
2793
+ self.assertEqual(0, conn.affected_rows())
2794
+ cur.execute(f'DROP TABLE {table_name};')
2795
+
2796
+ with s2.connect(database=type(self).dbname, client_found_rows=True) as conn:
2797
+ with conn.cursor() as cur:
2798
+ tag = str(uuid.uuid4()).replace('-', '_')
2799
+ table_name = f'test_client_found_rows_{tag}'
2800
+ cur.execute(f"CREATE TABLE {table_name} (id BIGINT \
2801
+ PRIMARY KEY, s TEXT DEFAULT 'def');")
2802
+ cur.execute(f'INSERT INTO {table_name} (id) \
2803
+ VALUES (1), (2), (3);')
2804
+ cur.execute(f"UPDATE {table_name} SET s = 'def' \
2805
+ WHERE id = 1;")
2806
+ # UPDATE statement above is not changing any rows,
2807
+ # but affected_rows is 1 as 1 row is subject to update, and
2808
+ # this is what affected_rows return when client_found_rows is True
2809
+ self.assertEqual(1, conn.affected_rows())
2810
+ cur.execute(f'DROP TABLE {table_name};')
2811
+
2779
2812
  def test_connect_timeout(self):
2780
2813
  with s2.connect(database=type(self).dbname, connect_timeout=8) as conn:
2781
2814
  with conn.cursor() as cur:
@@ -465,6 +465,10 @@ class TestWorkspaceFusion(unittest.TestCase):
465
465
  pass
466
466
 
467
467
 
468
+ @unittest.skipIf(
469
+ os.environ.get('SINGLESTOREDB_FUSION_ENABLE_HIDDEN', '0') == '0',
470
+ 'Hidden Fusion commands are not enabled.',
471
+ )
468
472
  @pytest.mark.management
469
473
  class TestJobsFusion(unittest.TestCase):
470
474
 
@@ -685,7 +689,8 @@ class TestJobsFusion(unittest.TestCase):
685
689
  'Status', 'ScheduledStartTime', 'StartedAt', 'FinishedAt',
686
690
  ]
687
691
  exec_job_ids = [x[2] for x in out]
688
- assert [x for x in exec_job_ids] == [job_id]
692
+ for x in exec_job_ids:
693
+ assert x == job_id
689
694
 
690
695
  # show executions for job with id job_id from 1 to 5 extended
691
696
  self.cur.execute(f'show job executions for {job_id} from 1 to 5 extended')
@@ -698,7 +703,8 @@ class TestJobsFusion(unittest.TestCase):
698
703
  'SnapshotNotebookPath',
699
704
  ]
700
705
  exec_job_ids = [x[2] for x in out]
701
- assert [x for x in exec_job_ids] == [job_id]
706
+ for x in exec_job_ids:
707
+ assert x == job_id
702
708
 
703
709
  # drop job
704
710
  self.cur.execute(f'drop jobs {job_id}')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: singlestoredb
3
- Version: 1.6.1
3
+ Version: 1.6.3
4
4
  Summary: Interface to the SingleStoreDB database and workspace management APIs
5
5
  Home-page: https://github.com/singlestore-labs/singlestoredb-python
6
6
  Author: SingleStore
@@ -1,8 +1,8 @@
1
- _singlestoredb_accel.pyd,sha256=hA7vX7U41eoh7qhBWvU8KOwq8doM0Lg7K-FhOpbhcYI,59392
2
- singlestoredb/__init__.py,sha256=A8EhTGYGhjzjpY8W-889PzW8Sky9aWXTNYCFYd1aYpM,1697
1
+ _singlestoredb_accel.pyd,sha256=Uxxes6GSjUiNKzBfXbtLHoyCFoakIZdOHcHvbv8bstQ,59392
2
+ singlestoredb/__init__.py,sha256=SpL4-XLoAIa7QepM8vcdktkpliC5inG2FiqFYdZ181o,1697
3
3
  singlestoredb/auth.py,sha256=RmYiH0Wlc2RXc4pTlRMysxtBI445ggCIwojWKC_eDLE,7844
4
- singlestoredb/config.py,sha256=U2v66Ua0eLWWOcmD9-XfCG-bjqQCHS6iMSejiogXVbw,12491
5
- singlestoredb/connection.py,sha256=CvdVyLfR_08ONma1BiwqqjVVSsdXxeHdfpR-zaq0wwc,46765
4
+ singlestoredb/config.py,sha256=LlrwKor_23uA9u7jWBYb-IaOKs30CjWIM7o9xCXEPcc,12721
5
+ singlestoredb/connection.py,sha256=QC5YQemwJOhdW_-ZBFpNLE15xFxwI1fB2LuvE1hNi9k,46812
6
6
  singlestoredb/converters.py,sha256=7_Of1f3Ow-JUoY1pHFlMPYxvt8llzdk-7X8qk5z2xJM,21631
7
7
  singlestoredb/exceptions.py,sha256=WCCJrNSsU-hD-621Jpd6bwmvGftQ7byXkk-XKXlaxpg,3354
8
8
  singlestoredb/pytest.py,sha256=TH364xRCN7_QaN0oRQDHixrEcDx_ZBgu3bmY0tvKrYU,9357
@@ -23,16 +23,16 @@ singlestoredb/functions/ext/rowdat_1.py,sha256=KYj_y5JWm3_B2-QC47HK-CNOrzujBqGUw
23
23
  singlestoredb/functions/ext/utils.py,sha256=OPMFD-tTCx2Kk9jguQkrTr7e4AgNkt15YsvaT1YSmN8,5480
24
24
  singlestoredb/fusion/__init__.py,sha256=FHWtrg6OJFTf6Ye197V5sU6ssryr2h6FBcDIgXP7-H4,367
25
25
  singlestoredb/fusion/graphql.py,sha256=SHqsPe4xgawdsTPHEtJGQlybYGWqPrGMmyK-v20RLac,5420
26
- singlestoredb/fusion/handler.py,sha256=k6OgdbwFl5T0s8TlShTmlAsMtp2Z53nwXoax_utA6Kw,25995
26
+ singlestoredb/fusion/handler.py,sha256=iILH6aeVWOPbqbkJ8m8CVYV61uJnw8ohYIv8U7bXklM,26231
27
27
  singlestoredb/fusion/registry.py,sha256=_eT1gd38VPlFKs5f9Pu6lqQyoDQ_ixW5O56QwYLQ89Y,6361
28
28
  singlestoredb/fusion/result.py,sha256=EcFY5Qv43ySlQsfl_JB-I3ko7PzVdjuhhoKN96uHSAM,12171
29
29
  singlestoredb/fusion/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- singlestoredb/fusion/handlers/job.py,sha256=h1KWApk5QzmwbqRqLTLfCdXOboM4b0yoOyLVItRCwJc,21767
30
+ singlestoredb/fusion/handlers/job.py,sha256=TE57c3IDsKb6C5QH4AKAZBMMeZCIaQ4NrZPzXIq0KaI,21959
31
31
  singlestoredb/fusion/handlers/stage.py,sha256=uPqawMvchnpyrPYLhB0joTremCURNYKOvYntFc3zTRU,14133
32
32
  singlestoredb/fusion/handlers/utils.py,sha256=7xWb_1mJzxW0po9iHVY2ZVnRvHIQgOlKZQZ1zllJBjk,5271
33
33
  singlestoredb/fusion/handlers/workspace.py,sha256=NxoEY5xd5lCQmXiim4nhAYCL0agHo1H_rGPpqa31hiw,28397
34
34
  singlestoredb/http/__init__.py,sha256=4cEDvLloGc3LSpU-PnIwacyu0n5oIIIE6xk2SPyWD_w,939
35
- singlestoredb/http/connection.py,sha256=dbMIxT5CeD5ABnXgFwY9fFbW42IXQWUi3ZC6ID7mnPY,40699
35
+ singlestoredb/http/connection.py,sha256=LFUeWx7maS7xhQLqEX3pgvIGoosqyJTovtWwJ1DyDSA,40721
36
36
  singlestoredb/management/__init__.py,sha256=pQbsOffl-i6zIzR63MCxSjxPY6TNmy7Kg0BCTExt3mk,244
37
37
  singlestoredb/management/billing_usage.py,sha256=0UHFSPCrN0nyeGFFM-HXS3NP8pYmYo2BCCahDEPXvzg,3883
38
38
  singlestoredb/management/cluster.py,sha256=XfdBuTlrAG-mnW1BFKeoAr4YSE5IVgxLjbuBSpqIySo,14823
@@ -45,7 +45,7 @@ singlestoredb/management/workspace.py,sha256=BBNa3Af5IaUAwtzHWrNTJXoc8anXJ7FiWH9
45
45
  singlestoredb/mysql/__init__.py,sha256=CbpwzNUJPAmKPpIobC0-ugBta_RgHCMq7X7N75QLReY,4669
46
46
  singlestoredb/mysql/_auth.py,sha256=YaqqyvAHmeraBv3BM207rNveUVPM-mPnW20ts_ynVWg,8341
47
47
  singlestoredb/mysql/charset.py,sha256=mnCdMpvdub1S2mm2PSk2j5JddgsWRjsVLtGx-y9TskE,10724
48
- singlestoredb/mysql/connection.py,sha256=Tl3EMUzogd0TV4FxzE0htAXiKCO9DfJfJrP3JUopjc4,74269
48
+ singlestoredb/mysql/connection.py,sha256=M7SH2QJbD6IG-E6UOzLuneGtXKmKbvjhvYn18EMnA_A,74379
49
49
  singlestoredb/mysql/converters.py,sha256=vebFFm6IrC0WgY-5Eh-esaPizY5cq3vDOUlEKGaYM-U,7771
50
50
  singlestoredb/mysql/cursors.py,sha256=pkrP-1t8IhBJRnYpdM7Rdm-332nOq1RYTDJ_yg_q5HI,27682
51
51
  singlestoredb/mysql/err.py,sha256=aDbmfq08gWVmfgIea735wSeiFdvYbB5wusgd3qTVq1s,2480
@@ -91,14 +91,14 @@ singlestoredb/tests/empty.sql,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
91
91
  singlestoredb/tests/local_infile.csv,sha256=0fYxcZcTvcwS2McF4sktFsipRY1G-ClGmCRR1eCqdEQ,45
92
92
  singlestoredb/tests/test.sql,sha256=winJzhZ2W52PcQ1j8X_NNIDRBmEa-xMAYrS_hoUtAP8,18337
93
93
  singlestoredb/tests/test2.sql,sha256=CEM8_lX189iQU65G3Pod7lig6osfrveQyoDz6HC35YQ,38
94
- singlestoredb/tests/test_basics.py,sha256=MrI0RMisxiLkJEfkuVBhfHd4nPdK-NnqISbeFr4rWlU,45383
94
+ singlestoredb/tests/test_basics.py,sha256=tLiR46qUy8-OHHRSHsQTBp5q9NAwNPR9HvfutI6YgnM,47629
95
95
  singlestoredb/tests/test_config.py,sha256=Ad0PDmCnJMOyy9f7WTKiRasSR_3mYRByUlSb7k5ZySg,11502
96
- singlestoredb/tests/test_connection.py,sha256=tp0YC81gUsMvNaSZGtxUA9yCpjU2zQCepz0JATYsTSI,120757
96
+ singlestoredb/tests/test_connection.py,sha256=UmoNo8erkcifEMbHZl83yAaRsyh6HANRdEtY3aViOK8,122792
97
97
  singlestoredb/tests/test_dbapi.py,sha256=cNJoTEZvYG7ckcwT7xqlkJX-2TDEYGTDDU1Igucp48k,679
98
98
  singlestoredb/tests/test_exceptions.py,sha256=vscMYmdOJr0JmkTAJrNI2w0Q96Nfugjkrt5_lYnw8i0,1176
99
99
  singlestoredb/tests/test_ext_func.py,sha256=gQErR-wAN8BqLNG5U4pNbg4qkQEo6Re8Hd9_Ztqo1RM,38550
100
100
  singlestoredb/tests/test_ext_func_data.py,sha256=9kn8BWmCjkbnP6hSbFhmhcdW4OmVT-GSvBTIzFBLEys,48796
101
- singlestoredb/tests/test_fusion.py,sha256=Jsg6xWqeDXyTD2BMc3PTSorf_bc4uqLMnHNgDMZbgtc,24524
101
+ singlestoredb/tests/test_fusion.py,sha256=Qab2TTVwUPo7NPso6nIQgDkR6hHtDLp5j1gO7X4bDsk,24685
102
102
  singlestoredb/tests/test_http.py,sha256=7hwXe61hlUes3nji0MTTZweo94tJAlJ-vA5ct9geXFQ,8868
103
103
  singlestoredb/tests/test_management.py,sha256=B4NkK7J0luuS7T-7OR5qzu-v8gkViIiXie-58bHQIDQ,35334
104
104
  singlestoredb/tests/test_plugin.py,sha256=P1nXLnTafaHkHN-6bVbGryxTu7OWJPU9SYFZ_WQUwq8,845
@@ -117,9 +117,9 @@ singlestoredb/utils/events.py,sha256=rC9cHAetua_E1f-EiFkFM-gJzQSQIH5Uk-4sspC3KjI
117
117
  singlestoredb/utils/mogrify.py,sha256=gCcn99-vgsGVjTUV7RHJ6hH4vCNrsGB_Xo4z8kiSPDQ,4201
118
118
  singlestoredb/utils/results.py,sha256=wR70LhCqlobniZf52r67zYLBOKjWHQm68NAskdRQND8,15862
119
119
  singlestoredb/utils/xdict.py,sha256=-wi1lSPTnY99fhVMBhPKJ8cCsQhNG4GMUfkEBDKYgCw,13321
120
- singlestoredb-1.6.1.dist-info/LICENSE,sha256=Bojenzui8aPNjlF3w4ojguDP7sTf8vFV_9Gc2UAG1sg,11542
121
- singlestoredb-1.6.1.dist-info/METADATA,sha256=-CqkYZ467TjzzZcOY681kdnPRg_mP2TMD6maDsUySGg,5710
122
- singlestoredb-1.6.1.dist-info/WHEEL,sha256=UyMHzmWA0xVqVPKfTiLs2eN3OWWZUl-kQemNbpIqlKo,100
123
- singlestoredb-1.6.1.dist-info/entry_points.txt,sha256=bSLaTWB5zGjpVYPAaI46MkkDup0su-eb3uAhCNYuRV0,48
124
- singlestoredb-1.6.1.dist-info/top_level.txt,sha256=SDtemIXf-Kp-_F2f_S6x0db33cHGOILdAEsIQZe2LZc,35
125
- singlestoredb-1.6.1.dist-info/RECORD,,
120
+ singlestoredb-1.6.3.dist-info/LICENSE,sha256=Bojenzui8aPNjlF3w4ojguDP7sTf8vFV_9Gc2UAG1sg,11542
121
+ singlestoredb-1.6.3.dist-info/METADATA,sha256=vTNnIJWmEAPO7KExTeaoD9Xp2h8-_BNHUUhDq2lZU-U,5710
122
+ singlestoredb-1.6.3.dist-info/WHEEL,sha256=UyMHzmWA0xVqVPKfTiLs2eN3OWWZUl-kQemNbpIqlKo,100
123
+ singlestoredb-1.6.3.dist-info/entry_points.txt,sha256=bSLaTWB5zGjpVYPAaI46MkkDup0su-eb3uAhCNYuRV0,48
124
+ singlestoredb-1.6.3.dist-info/top_level.txt,sha256=SDtemIXf-Kp-_F2f_S6x0db33cHGOILdAEsIQZe2LZc,35
125
+ singlestoredb-1.6.3.dist-info/RECORD,,