singlestoredb 1.12.3__cp38-abi3-macosx_10_9_universal2.whl → 1.12.4__cp38-abi3-macosx_10_9_universal2.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.

Binary file
singlestoredb/__init__.py CHANGED
@@ -13,7 +13,7 @@ Examples
13
13
 
14
14
  """
15
15
 
16
- __version__ = '1.12.3'
16
+ __version__ = '1.12.4'
17
17
 
18
18
  from typing import Any
19
19
 
@@ -989,18 +989,11 @@ class Connection(BaseConnection):
989
989
 
990
990
  def set_character_set(self, charset, collation=None):
991
991
  """
992
- Set session charaset (and collation) on the server.
992
+ Set charaset (and collation) on the server.
993
993
 
994
- Send "SET [COLLATION|CHARACTER_SET]_SERVER = [collation|charset]" query.
994
+ Send "SET NAMES charset [COLLATE collation]" query.
995
995
  Update Connection.encoding based on charset.
996
996
 
997
- If charset/collation are being set to utf8mb4, the corresponding global
998
- variables (COLLATION_SERVER and CHARACTER_SET_SERVER) must be also set
999
- to utf8mb4. This is true by default for SingleStore 8.7+. For previuous
1000
- versions or non-default setting user must manully run the query
1001
- `SET global collation_connection = utf8mb4_general_ci`
1002
- replacing utf8mb4_general_ci with {collation}.
1003
-
1004
997
  Parameters
1005
998
  ----------
1006
999
  charset : str
@@ -1013,9 +1006,9 @@ class Connection(BaseConnection):
1013
1006
  encoding = charset_by_name(charset).encoding
1014
1007
 
1015
1008
  if collation:
1016
- query = f'SET COLLATION_SERVER={collation}'
1009
+ query = f'SET NAMES {charset} COLLATE {collation}'
1017
1010
  else:
1018
- query = f'SET CHARACTER_SET_SERVER={charset}'
1011
+ query = f'SET NAMES {charset}'
1019
1012
  self._execute_command(COMMAND.COM_QUERY, query)
1020
1013
  self._read_packet()
1021
1014
  self.charset = charset
@@ -1119,6 +1112,19 @@ class Connection(BaseConnection):
1119
1112
  self._get_server_information()
1120
1113
  self._request_authentication()
1121
1114
 
1115
+ # Send "SET NAMES" query on init for:
1116
+ # - Ensure charaset (and collation) is set to the server.
1117
+ # - collation_id in handshake packet may be ignored.
1118
+ # - If collation is not specified, we don't know what is server's
1119
+ # default collation for the charset. For example, default collation
1120
+ # of utf8mb4 is:
1121
+ # - MySQL 5.7, MariaDB 10.x: utf8mb4_general_ci
1122
+ # - MySQL 8.0: utf8mb4_0900_ai_ci
1123
+ #
1124
+ # Reference:
1125
+ # - https://github.com/PyMySQL/PyMySQL/issues/1092
1126
+ # - https://github.com/wagtail/wagtail/issues/9477
1127
+ # - https://zenn.dev/methane/articles/2023-mysql-collation (Japanese)
1122
1128
  self.set_character_set(self.charset, self.collation)
1123
1129
 
1124
1130
  if self.sql_mode is not None:
@@ -1308,6 +1308,8 @@ class TestBasics(unittest.TestCase):
1308
1308
  )
1309
1309
 
1310
1310
  def test_charset(self):
1311
+ self.skipTest('Skip until charset commands are re-implemented')
1312
+
1311
1313
  with s2.connect(database=type(self).dbname) as conn:
1312
1314
  with conn.cursor() as cur:
1313
1315
  cur.execute('''
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: singlestoredb
3
- Version: 1.12.3
3
+ Version: 1.12.4
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,15 +1,15 @@
1
- _singlestoredb_accel.abi3.so,sha256=cVmTVIA6Yi1uv4w3hPysd8XErqbm4qUD8RcUQPjb0gk,206864
2
- singlestoredb-1.12.3.dist-info/RECORD,,
3
- singlestoredb-1.12.3.dist-info/LICENSE,sha256=Mlq78idURT-9G026aMYswwwnnrLcgzTLuXeAs5hjDLM,11341
4
- singlestoredb-1.12.3.dist-info/WHEEL,sha256=_VEguvlLpUd-c8RbFMA4yMIVNMBv2LhpxYLCEQ-Bogk,113
5
- singlestoredb-1.12.3.dist-info/entry_points.txt,sha256=bSLaTWB5zGjpVYPAaI46MkkDup0su-eb3uAhCNYuRV0,48
6
- singlestoredb-1.12.3.dist-info/top_level.txt,sha256=lA65Vf4qAMfg_s1oG3LEO90h4t1Z-SPDbRqkevI3bSY,40
7
- singlestoredb-1.12.3.dist-info/METADATA,sha256=yrjRv-AXr3c1M1Zs7y0viiN7zEQJAI-0klLXqOhQ9X4,5636
1
+ _singlestoredb_accel.abi3.so,sha256=xY1c5vTEUfKIji9QcD3fQ_saMVbafbIszYKY7i9yfzo,206864
2
+ singlestoredb-1.12.4.dist-info/RECORD,,
3
+ singlestoredb-1.12.4.dist-info/LICENSE,sha256=Mlq78idURT-9G026aMYswwwnnrLcgzTLuXeAs5hjDLM,11341
4
+ singlestoredb-1.12.4.dist-info/WHEEL,sha256=_VEguvlLpUd-c8RbFMA4yMIVNMBv2LhpxYLCEQ-Bogk,113
5
+ singlestoredb-1.12.4.dist-info/entry_points.txt,sha256=bSLaTWB5zGjpVYPAaI46MkkDup0su-eb3uAhCNYuRV0,48
6
+ singlestoredb-1.12.4.dist-info/top_level.txt,sha256=lA65Vf4qAMfg_s1oG3LEO90h4t1Z-SPDbRqkevI3bSY,40
7
+ singlestoredb-1.12.4.dist-info/METADATA,sha256=yw18Su4O69FjG3sYf5-SSdTQsiMhZiIa2fcGK2S4Vrs,5636
8
8
  sqlx/magic.py,sha256=JsS9_9aBFaOt91Torm1JPN0c8qB2QmYJmNSKtbSQIY0,3509
9
9
  sqlx/__init__.py,sha256=aBYiU8DZXCogvWu3yWafOz7bZS5WWwLZXj7oL0dXGyU,85
10
10
  singlestoredb/auth.py,sha256=u8D9tpKzrqa4ssaHjyZnGDX1q8XBpGtuoOkTkSv7B28,7599
11
11
  singlestoredb/config.py,sha256=0XooNOf1dUee26C0io7unfBbdXUyfDIYc_mSpxsVsTI,12592
12
- singlestoredb/__init__.py,sha256=LXYFwtLhjKsxv739J4mxgRFhDzBRIMM-XBnm-RqwLtk,1649
12
+ singlestoredb/__init__.py,sha256=k2RhlWhHq2KGERDJKr9bjgAV5KCrLJl2vcEyfWJriGw,1649
13
13
  singlestoredb/types.py,sha256=FIqO1A7e0Gkk7ITmIysBy-P5S--ItbMSlYvblzqGS30,9969
14
14
  singlestoredb/connection.py,sha256=0HEpjBZXLqQwOTEfveMkgej1H3Kyof47prIHvJJZtoo,45831
15
15
  singlestoredb/pytest.py,sha256=OyF3BO9mgxenifYhOihnzGk8WzCJ_zN5_mxe8XyFPOc,9074
@@ -34,7 +34,7 @@ singlestoredb/tests/test_xdict.py,sha256=fqHspoi39nbX3fIDVkkRXcd5H50xdOsSvK0bxAM
34
34
  singlestoredb/tests/test_results.py,sha256=wg93sujwt-R9_eJCgSCElgAZhLDkIiAo3qPkPydOv78,6582
35
35
  singlestoredb/tests/test_fusion.py,sha256=EH1mRwdX2Fajsq6x2l0gBhH1YhcxtvDGIKC9HJ4sDbQ,50521
36
36
  singlestoredb/tests/test_plugin.py,sha256=qpO9wmWc62VaijN1sJ97YSYIX7I7Y5C6sY-WzwrutDQ,812
37
- singlestoredb/tests/test_basics.py,sha256=QMPTSgE8sVdL3q9YNfjsI6kJovHEGfsANjJRYGl1wns,48373
37
+ singlestoredb/tests/test_basics.py,sha256=Dw1irrtf3gWN7tqGruSH6uhWi5zkmCpJl6ZMQxMqlf4,48446
38
38
  singlestoredb/tests/test_ext_func.py,sha256=OWd-CJ1Owhx72nikSWWEF2EQFCJk7vEXZM2Oy9EbYQo,37357
39
39
  singlestoredb/tests/test_connection.py,sha256=fvn-kPdeIMI9RGNz0dNk5ZmTCep1amwWQDHYfPdqO60,119699
40
40
  singlestoredb/tests/test2.ipynb,sha256=yd1PE1VK-DwiRd6mYS4_0cPBtuVkvcDtycvTwD-YnDo,218
@@ -87,7 +87,7 @@ singlestoredb/mysql/protocol.py,sha256=2GG8qTXy5npqo7z2D2K5T0S8PtoUOS-hFDEXy8VCo
87
87
  singlestoredb/mysql/cursors.py,sha256=aOLfHkj83aYZPOVuhJPkZ83CWByszIBRynq0fqSaWvY,27046
88
88
  singlestoredb/mysql/__init__.py,sha256=olUTAvkiERhDW41JXQMawkg-i0tvBEkoTkII1tt6lxU,4492
89
89
  singlestoredb/mysql/times.py,sha256=2j7purNVnJmjhOUgwUze-r3kNlCWqxjXj-jtqOzBfZI,463
90
- singlestoredb/mysql/connection.py,sha256=TN-_c8JSFSEnpsHNtQ_3DQyOshp-BTx2PlF8g_hDeGQ,73087
90
+ singlestoredb/mysql/connection.py,sha256=6WlhOF-oEoF7V4bl4MTxU6qr6H15-KZvPC-snPmbXVg,73355
91
91
  singlestoredb/mysql/charset.py,sha256=-FlONDS_oAUF5B3mIgeHBPb_SCt4zHD33arUeBNctU0,10510
92
92
  singlestoredb/mysql/converters.py,sha256=CVe8SDmjbIAhy1xpQ2N5OKWw6t5eWpw-EU3QTlA0Hh0,7500
93
93
  singlestoredb/mysql/optionfile.py,sha256=DqL-rOQcqQncD5eVbPRkwZqo7Pj3Vh40VLx3E_e87TU,655