singlestoredb 1.15.3__cp38-abi3-win32.whl → 1.15.5__cp38-abi3-win32.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 +0 -0
- singlestoredb/__init__.py +1 -1
- singlestoredb/functions/ext/asgi.py +34 -10
- singlestoredb/fusion/handlers/workspace.py +72 -12
- singlestoredb/http/connection.py +7 -5
- singlestoredb/management/workspace.py +1 -1
- singlestoredb/mysql/protocol.py +15 -2
- singlestoredb/notebook/_portal.py +54 -15
- singlestoredb/tests/alltypes.sql +307 -0
- singlestoredb/tests/alltypes_no_nulls.sql +208 -0
- singlestoredb/tests/test_connection.py +18 -18
- {singlestoredb-1.15.3.dist-info → singlestoredb-1.15.5.dist-info}/METADATA +1 -1
- {singlestoredb-1.15.3.dist-info → singlestoredb-1.15.5.dist-info}/RECORD +17 -15
- {singlestoredb-1.15.3.dist-info → singlestoredb-1.15.5.dist-info}/LICENSE +0 -0
- {singlestoredb-1.15.3.dist-info → singlestoredb-1.15.5.dist-info}/WHEEL +0 -0
- {singlestoredb-1.15.3.dist-info → singlestoredb-1.15.5.dist-info}/entry_points.txt +0 -0
- {singlestoredb-1.15.3.dist-info → singlestoredb-1.15.5.dist-info}/top_level.txt +0 -0
_singlestoredb_accel.pyd
CHANGED
|
Binary file
|
singlestoredb/__init__.py
CHANGED
|
@@ -708,8 +708,22 @@ class Application(object):
|
|
|
708
708
|
# Error response start
|
|
709
709
|
error_response_dict: Dict[str, Any] = dict(
|
|
710
710
|
type='http.response.start',
|
|
711
|
-
status=
|
|
712
|
-
headers=[(b'content-type', b'
|
|
711
|
+
status=500,
|
|
712
|
+
headers=[(b'content-type', b'application/json')],
|
|
713
|
+
)
|
|
714
|
+
|
|
715
|
+
# Timeout response start
|
|
716
|
+
timeout_response_dict: Dict[str, Any] = dict(
|
|
717
|
+
type='http.response.start',
|
|
718
|
+
status=504,
|
|
719
|
+
headers=[(b'content-type', b'application/json')],
|
|
720
|
+
)
|
|
721
|
+
|
|
722
|
+
# Cancel response start
|
|
723
|
+
cancel_response_dict: Dict[str, Any] = dict(
|
|
724
|
+
type='http.response.start',
|
|
725
|
+
status=503,
|
|
726
|
+
headers=[(b'content-type', b'application/json')],
|
|
713
727
|
)
|
|
714
728
|
|
|
715
729
|
# JSON response start
|
|
@@ -1233,12 +1247,14 @@ class Application(object):
|
|
|
1233
1247
|
'timeout': func_info['timeout'],
|
|
1234
1248
|
},
|
|
1235
1249
|
)
|
|
1236
|
-
body = (
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1250
|
+
body = json.dumps(
|
|
1251
|
+
dict(
|
|
1252
|
+
error='[TimeoutError] Function call timed out after ' +
|
|
1253
|
+
str(func_info['timeout']) +
|
|
1254
|
+
' seconds',
|
|
1255
|
+
),
|
|
1240
1256
|
).encode('utf-8')
|
|
1241
|
-
await send(self.
|
|
1257
|
+
await send(self.timeout_response_dict)
|
|
1242
1258
|
|
|
1243
1259
|
except asyncio.CancelledError:
|
|
1244
1260
|
self.logger.exception(
|
|
@@ -1249,8 +1265,12 @@ class Application(object):
|
|
|
1249
1265
|
'function_name': func_name.decode('utf-8'),
|
|
1250
1266
|
},
|
|
1251
1267
|
)
|
|
1252
|
-
body =
|
|
1253
|
-
|
|
1268
|
+
body = json.dumps(
|
|
1269
|
+
dict(
|
|
1270
|
+
error='[CancelledError] Function call was cancelled',
|
|
1271
|
+
),
|
|
1272
|
+
).encode('utf-8')
|
|
1273
|
+
await send(self.cancel_response_dict)
|
|
1254
1274
|
|
|
1255
1275
|
except Exception as e:
|
|
1256
1276
|
self.logger.exception(
|
|
@@ -1262,7 +1282,11 @@ class Application(object):
|
|
|
1262
1282
|
'exception_type': type(e).__name__,
|
|
1263
1283
|
},
|
|
1264
1284
|
)
|
|
1265
|
-
body =
|
|
1285
|
+
body = json.dumps(
|
|
1286
|
+
dict(
|
|
1287
|
+
error=f'[{type(e).__name__}] {str(e).strip()}',
|
|
1288
|
+
),
|
|
1289
|
+
).encode('utf-8')
|
|
1266
1290
|
await send(self.error_response_dict)
|
|
1267
1291
|
|
|
1268
1292
|
finally:
|
|
@@ -15,7 +15,7 @@ from .utils import get_workspace_manager
|
|
|
15
15
|
|
|
16
16
|
class UseWorkspaceHandler(SQLHandler):
|
|
17
17
|
"""
|
|
18
|
-
USE WORKSPACE workspace [ with_database ];
|
|
18
|
+
USE WORKSPACE workspace [ in_group ] [ with_database ];
|
|
19
19
|
|
|
20
20
|
# Workspace
|
|
21
21
|
workspace = { workspace_id | workspace_name | current_workspace }
|
|
@@ -29,6 +29,15 @@ class UseWorkspaceHandler(SQLHandler):
|
|
|
29
29
|
# Current workspace
|
|
30
30
|
current_workspace = @@CURRENT
|
|
31
31
|
|
|
32
|
+
# Workspace group specification
|
|
33
|
+
in_group = IN GROUP { group_id | group_name }
|
|
34
|
+
|
|
35
|
+
# ID of workspace group
|
|
36
|
+
group_id = ID '<group-id>'
|
|
37
|
+
|
|
38
|
+
# Name of workspace group
|
|
39
|
+
group_name = '<group-name>'
|
|
40
|
+
|
|
32
41
|
# Name of database
|
|
33
42
|
with_database = WITH DATABASE 'database-name'
|
|
34
43
|
|
|
@@ -38,13 +47,18 @@ class UseWorkspaceHandler(SQLHandler):
|
|
|
38
47
|
|
|
39
48
|
Arguments
|
|
40
49
|
---------
|
|
41
|
-
* ``<workspace-id>``: The ID of the workspace to
|
|
42
|
-
* ``<workspace-name>``: The name of the workspace to
|
|
50
|
+
* ``<workspace-id>``: The ID of the workspace to use.
|
|
51
|
+
* ``<workspace-name>``: The name of the workspace to use.
|
|
52
|
+
* ``<group-id>``: The ID of the workspace group to search in.
|
|
53
|
+
* ``<group-name>``: The name of the workspace group to search in.
|
|
43
54
|
|
|
44
55
|
Remarks
|
|
45
56
|
-------
|
|
46
57
|
* If you want to specify a database in the current workspace,
|
|
47
58
|
the workspace name can be specified as ``@@CURRENT``.
|
|
59
|
+
* Use the ``IN GROUP`` clause to specify the ID or name of the workspace
|
|
60
|
+
group where the workspace should be found. If not specified, the current
|
|
61
|
+
workspace group will be used.
|
|
48
62
|
* Specify the ``WITH DATABASE`` clause to select a default
|
|
49
63
|
database for the session.
|
|
50
64
|
* This command only works in a notebook session in the
|
|
@@ -57,23 +71,69 @@ class UseWorkspaceHandler(SQLHandler):
|
|
|
57
71
|
|
|
58
72
|
USE WORKSPACE 'examplews' WITH DATABASE 'dbname';
|
|
59
73
|
|
|
74
|
+
The following command sets the workspace to ``examplews`` from a specific
|
|
75
|
+
workspace group::
|
|
76
|
+
|
|
77
|
+
USE WORKSPACE 'examplews' IN GROUP 'my-workspace-group';
|
|
78
|
+
|
|
60
79
|
"""
|
|
61
80
|
def run(self, params: Dict[str, Any]) -> Optional[FusionSQLResult]:
|
|
62
81
|
from singlestoredb.notebook import portal
|
|
82
|
+
|
|
83
|
+
# Handle current workspace case
|
|
63
84
|
if params['workspace'].get('current_workspace'):
|
|
64
85
|
if params.get('with_database'):
|
|
65
86
|
portal.default_database = params['with_database']
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
87
|
+
return None
|
|
88
|
+
|
|
89
|
+
# Get workspace name or ID
|
|
90
|
+
workspace_name = params['workspace'].get('workspace_name')
|
|
91
|
+
workspace_id = params['workspace'].get('workspace_id')
|
|
92
|
+
|
|
93
|
+
# If IN GROUP is specified, look up workspace in that group
|
|
94
|
+
if params.get('in_group'):
|
|
95
|
+
workspace_group = get_workspace_group(params)
|
|
96
|
+
|
|
97
|
+
if workspace_name:
|
|
98
|
+
workspace = workspace_group.workspaces[workspace_name]
|
|
99
|
+
elif workspace_id:
|
|
100
|
+
# Find workspace by ID in the specified group
|
|
101
|
+
workspace = next(
|
|
102
|
+
(w for w in workspace_group.workspaces if w.id == workspace_id),
|
|
103
|
+
None,
|
|
104
|
+
)
|
|
105
|
+
if workspace is None:
|
|
106
|
+
raise KeyError(f'no workspace found with ID: {workspace_id}')
|
|
107
|
+
|
|
108
|
+
workspace_id = workspace.id
|
|
109
|
+
|
|
110
|
+
# Set workspace and database
|
|
111
|
+
if params.get('with_database'):
|
|
112
|
+
if params.get('in_group'):
|
|
113
|
+
# Use 3-element tuple: (workspace_group_id, workspace_name_or_id,
|
|
114
|
+
# database)
|
|
115
|
+
portal.connection = ( # type: ignore[assignment]
|
|
116
|
+
workspace_group.id,
|
|
117
|
+
workspace_name or workspace_id,
|
|
118
|
+
params['with_database'],
|
|
119
|
+
)
|
|
70
120
|
else:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
121
|
+
# Use 2-element tuple: (workspace_name_or_id, database)
|
|
122
|
+
portal.connection = (
|
|
123
|
+
workspace_name or workspace_id,
|
|
124
|
+
params['with_database'],
|
|
125
|
+
)
|
|
75
126
|
else:
|
|
76
|
-
|
|
127
|
+
if params.get('in_group'):
|
|
128
|
+
# Use 2-element tuple: (workspace_group_id, workspace_name_or_id)
|
|
129
|
+
portal.workspace = ( # type: ignore[assignment]
|
|
130
|
+
workspace_group.id,
|
|
131
|
+
workspace_name or workspace_id,
|
|
132
|
+
)
|
|
133
|
+
else:
|
|
134
|
+
# Use string: workspace_name_or_id
|
|
135
|
+
portal.workspace = workspace_name or workspace_id
|
|
136
|
+
|
|
77
137
|
return None
|
|
78
138
|
|
|
79
139
|
|
singlestoredb/http/connection.py
CHANGED
|
@@ -647,23 +647,24 @@ class Cursor(connection.Cursor):
|
|
|
647
647
|
type_code = types.ColumnType.get_code(data_type)
|
|
648
648
|
prec, scale = get_precision_scale(col['dataType'])
|
|
649
649
|
converter = http_converters.get(type_code, None)
|
|
650
|
+
|
|
650
651
|
if 'UNSIGNED' in data_type:
|
|
651
652
|
flags = 32
|
|
653
|
+
|
|
652
654
|
if data_type.endswith('BLOB') or data_type.endswith('BINARY'):
|
|
653
655
|
converter = functools.partial(
|
|
654
656
|
b64decode_converter, converter, # type: ignore
|
|
655
657
|
)
|
|
656
658
|
charset = 63 # BINARY
|
|
659
|
+
|
|
657
660
|
if type_code == 0: # DECIMAL
|
|
658
661
|
type_code = types.ColumnType.get_code('NEWDECIMAL')
|
|
659
662
|
elif type_code == 15: # VARCHAR / VARBINARY
|
|
660
663
|
type_code = types.ColumnType.get_code('VARSTRING')
|
|
661
|
-
|
|
662
|
-
prec += 1 # for sign
|
|
663
|
-
if scale is not None and scale > 0:
|
|
664
|
-
prec += 1 # for decimal
|
|
664
|
+
|
|
665
665
|
if converter is not None:
|
|
666
666
|
convs.append((i, None, converter))
|
|
667
|
+
|
|
667
668
|
description.append(
|
|
668
669
|
Description(
|
|
669
670
|
str(col['name']), type_code,
|
|
@@ -673,6 +674,7 @@ class Cursor(connection.Cursor):
|
|
|
673
674
|
),
|
|
674
675
|
)
|
|
675
676
|
pymy_res.append(PyMyField(col['name'], flags, charset))
|
|
677
|
+
|
|
676
678
|
self._descriptions.append(description)
|
|
677
679
|
self._schemas.append(get_schema(self._results_type, description))
|
|
678
680
|
|
|
@@ -936,7 +938,7 @@ class Cursor(connection.Cursor):
|
|
|
936
938
|
|
|
937
939
|
def __iter__(self) -> Iterable[Tuple[Any, ...]]:
|
|
938
940
|
"""Return result iterator."""
|
|
939
|
-
return iter(self._rows)
|
|
941
|
+
return iter(self._rows[self._row_idx:])
|
|
940
942
|
|
|
941
943
|
def __enter__(self) -> 'Cursor':
|
|
942
944
|
"""Enter a context."""
|
singlestoredb/mysql/protocol.py
CHANGED
|
@@ -324,13 +324,26 @@ class FieldDescriptorPacket(MysqlPacket):
|
|
|
324
324
|
raise TypeError(f'unrecognized extended data type: {ext_type_code}')
|
|
325
325
|
|
|
326
326
|
def description(self):
|
|
327
|
-
"""
|
|
327
|
+
"""
|
|
328
|
+
Provides a 9-item tuple.
|
|
329
|
+
|
|
330
|
+
Standard descriptions only have 7 fields according to the Python
|
|
331
|
+
PEP249 DB Spec, but we need to surface information about unsigned
|
|
332
|
+
types and charsetnr for proper type handling.
|
|
333
|
+
|
|
334
|
+
"""
|
|
335
|
+
precision = self.get_column_length()
|
|
336
|
+
if self.type_code in (FIELD_TYPE.DECIMAL, FIELD_TYPE.NEWDECIMAL):
|
|
337
|
+
if precision:
|
|
338
|
+
precision -= 1 # for the sign
|
|
339
|
+
if self.scale > 0:
|
|
340
|
+
precision -= 1 # for the decimal point
|
|
328
341
|
return Description(
|
|
329
342
|
self.name,
|
|
330
343
|
self.type_code,
|
|
331
344
|
None, # TODO: display_length; should this be self.length?
|
|
332
345
|
self.get_column_length(), # 'internal_size'
|
|
333
|
-
|
|
346
|
+
precision, # 'precision'
|
|
334
347
|
self.scale,
|
|
335
348
|
self.flags % 2 == 0,
|
|
336
349
|
self.flags,
|
|
@@ -10,6 +10,7 @@ from typing import Dict
|
|
|
10
10
|
from typing import List
|
|
11
11
|
from typing import Optional
|
|
12
12
|
from typing import Tuple
|
|
13
|
+
from typing import Union
|
|
13
14
|
|
|
14
15
|
from . import _objects as obj
|
|
15
16
|
from ..management import workspace as mgr
|
|
@@ -167,15 +168,32 @@ class Portal(object):
|
|
|
167
168
|
return obj.workspace
|
|
168
169
|
|
|
169
170
|
@workspace.setter
|
|
170
|
-
def workspace(self,
|
|
171
|
+
def workspace(self, workspace_spec: Union[str, Tuple[str, str]]) -> None:
|
|
171
172
|
"""Set workspace."""
|
|
172
|
-
if
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
173
|
+
if isinstance(workspace_spec, tuple):
|
|
174
|
+
# 2-element tuple: (workspace_group_id, workspace_name_or_id)
|
|
175
|
+
workspace_group_id, name_or_id = workspace_spec
|
|
176
|
+
uuid_pattern = (
|
|
177
|
+
r'[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}'
|
|
178
|
+
)
|
|
179
|
+
if re.match(uuid_pattern, name_or_id, flags=re.I):
|
|
180
|
+
w = mgr.get_workspace(name_or_id)
|
|
181
|
+
else:
|
|
182
|
+
w = mgr.get_workspace_group(workspace_group_id).workspaces[
|
|
183
|
+
name_or_id
|
|
184
|
+
]
|
|
177
185
|
else:
|
|
178
|
-
|
|
186
|
+
# String: workspace_name_or_id (existing behavior)
|
|
187
|
+
name_or_id = workspace_spec
|
|
188
|
+
uuid_pattern = (
|
|
189
|
+
r'[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}'
|
|
190
|
+
)
|
|
191
|
+
if re.match(uuid_pattern, name_or_id, flags=re.I):
|
|
192
|
+
w = mgr.get_workspace(name_or_id)
|
|
193
|
+
else:
|
|
194
|
+
w = mgr.get_workspace_group(
|
|
195
|
+
self.workspace_group_id,
|
|
196
|
+
).workspaces[name_or_id]
|
|
179
197
|
|
|
180
198
|
if w.state and w.state.lower() not in ['active', 'resumed']:
|
|
181
199
|
raise RuntimeError('workspace is not active')
|
|
@@ -196,16 +214,37 @@ class Portal(object):
|
|
|
196
214
|
return self.workspace, self.default_database
|
|
197
215
|
|
|
198
216
|
@connection.setter
|
|
199
|
-
def connection(
|
|
217
|
+
def connection(
|
|
218
|
+
self,
|
|
219
|
+
connection_spec: Union[Tuple[str, str], Tuple[str, str, str]],
|
|
220
|
+
) -> None:
|
|
200
221
|
"""Set workspace and default database name."""
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
name_or_id,
|
|
205
|
-
|
|
206
|
-
|
|
222
|
+
if len(connection_spec) == 3:
|
|
223
|
+
# 3-element tuple: (workspace_group_id, workspace_name_or_id,
|
|
224
|
+
# default_database)
|
|
225
|
+
workspace_group_id, name_or_id, default_database = connection_spec
|
|
226
|
+
uuid_pattern = (
|
|
227
|
+
r'[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}'
|
|
228
|
+
)
|
|
229
|
+
if re.match(uuid_pattern, name_or_id, flags=re.I):
|
|
230
|
+
w = mgr.get_workspace(name_or_id)
|
|
231
|
+
else:
|
|
232
|
+
w = mgr.get_workspace_group(workspace_group_id).workspaces[
|
|
233
|
+
name_or_id
|
|
234
|
+
]
|
|
207
235
|
else:
|
|
208
|
-
|
|
236
|
+
# 2-element tuple: (workspace_name_or_id, default_database)
|
|
237
|
+
# existing behavior
|
|
238
|
+
name_or_id, default_database = connection_spec
|
|
239
|
+
uuid_pattern = (
|
|
240
|
+
r'[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}'
|
|
241
|
+
)
|
|
242
|
+
if re.match(uuid_pattern, name_or_id, flags=re.I):
|
|
243
|
+
w = mgr.get_workspace(name_or_id)
|
|
244
|
+
else:
|
|
245
|
+
w = mgr.get_workspace_group(
|
|
246
|
+
self.workspace_group_id,
|
|
247
|
+
).workspaces[name_or_id]
|
|
209
248
|
|
|
210
249
|
if w.state and w.state.lower() not in ['active', 'resumed']:
|
|
211
250
|
raise RuntimeError('workspace is not active')
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS alltypes (
|
|
2
|
+
`id` INT(11),
|
|
3
|
+
`tinyint` TINYINT,
|
|
4
|
+
`unsigned_tinyint` TINYINT UNSIGNED,
|
|
5
|
+
`bool` BOOL,
|
|
6
|
+
`boolean` BOOLEAN,
|
|
7
|
+
`smallint` SMALLINT,
|
|
8
|
+
`unsigned_smallint` SMALLINT UNSIGNED,
|
|
9
|
+
`mediumint` MEDIUMINT,
|
|
10
|
+
`unsigned_mediumint` MEDIUMINT UNSIGNED,
|
|
11
|
+
`int24` MEDIUMINT,
|
|
12
|
+
`unsigned_int24` MEDIUMINT UNSIGNED,
|
|
13
|
+
`int` INT,
|
|
14
|
+
`unsigned_int` INT UNSIGNED,
|
|
15
|
+
`integer` INTEGER,
|
|
16
|
+
`unsigned_integer` INTEGER UNSIGNED,
|
|
17
|
+
`bigint` BIGINT,
|
|
18
|
+
`unsigned_bigint` BIGINT UNSIGNED,
|
|
19
|
+
`float` FLOAT,
|
|
20
|
+
`double` DOUBLE,
|
|
21
|
+
`real` REAL,
|
|
22
|
+
`decimal` DECIMAL(20,6),
|
|
23
|
+
`dec` DEC(20,6),
|
|
24
|
+
`fixed` FIXED(20,6),
|
|
25
|
+
`numeric` NUMERIC(20,6),
|
|
26
|
+
`date` DATE,
|
|
27
|
+
`time` TIME,
|
|
28
|
+
`time_6` TIME(6),
|
|
29
|
+
`datetime` DATETIME,
|
|
30
|
+
`datetime_6` DATETIME(6),
|
|
31
|
+
`timestamp` TIMESTAMP,
|
|
32
|
+
`timestamp_6` TIMESTAMP(6),
|
|
33
|
+
`year` YEAR,
|
|
34
|
+
`char_100` CHAR(100),
|
|
35
|
+
`binary_100` BINARY(100),
|
|
36
|
+
`varchar_200` VARCHAR(200),
|
|
37
|
+
`varbinary_200` VARBINARY(200),
|
|
38
|
+
`longtext` LONGTEXT,
|
|
39
|
+
`mediumtext` MEDIUMTEXT,
|
|
40
|
+
`text` TEXT,
|
|
41
|
+
`tinytext` TINYTEXT,
|
|
42
|
+
`longblob` LONGBLOB,
|
|
43
|
+
`mediumblob` MEDIUMBLOB,
|
|
44
|
+
`blob` BLOB,
|
|
45
|
+
`tinyblob` TINYBLOB,
|
|
46
|
+
`json` JSON,
|
|
47
|
+
-- `geographypoint` GEOGRAPHYPOINT,
|
|
48
|
+
-- `geography` GEOGRAPHY,
|
|
49
|
+
`enum` ENUM('one', 'two', 'three'),
|
|
50
|
+
`set` SET('one', 'two', 'three'),
|
|
51
|
+
`bit` BIT
|
|
52
|
+
)
|
|
53
|
+
COLLATE='utf8_unicode_ci';
|
|
54
|
+
|
|
55
|
+
INSERT INTO alltypes SET
|
|
56
|
+
`id`=0,
|
|
57
|
+
`tinyint`=80,
|
|
58
|
+
`unsigned_tinyint`=85,
|
|
59
|
+
`bool`=0,
|
|
60
|
+
`boolean`=1,
|
|
61
|
+
`smallint`=-27897,
|
|
62
|
+
`unsigned_smallint`=27897,
|
|
63
|
+
`mediumint`=104729,
|
|
64
|
+
`unsigned_mediumint`=120999,
|
|
65
|
+
`int24`=-200899,
|
|
66
|
+
`unsigned_int24`=407709,
|
|
67
|
+
`int`=-1295369311,
|
|
68
|
+
`unsigned_int`=3872362332,
|
|
69
|
+
`integer`=-1741727421,
|
|
70
|
+
`unsigned_integer`=3198387363,
|
|
71
|
+
`bigint`=-266883847,
|
|
72
|
+
`unsigned_bigint`=980007287362,
|
|
73
|
+
`float`=-146486683.754744,
|
|
74
|
+
`double`=-474646154.719356,
|
|
75
|
+
`real`=-901409776.279346,
|
|
76
|
+
`decimal`=28111097.610822,
|
|
77
|
+
`dec`=389451155.931428,
|
|
78
|
+
`fixed`=-143773416.044092,
|
|
79
|
+
`numeric`=866689461.300046,
|
|
80
|
+
`date`='8524-11-10',
|
|
81
|
+
`time`='00:07:00',
|
|
82
|
+
`time_6`='01:10:00.000002',
|
|
83
|
+
`datetime`='9948-03-11 15:29:22',
|
|
84
|
+
`datetime_6`='1756-10-29 02:02:42.000008',
|
|
85
|
+
`timestamp`='1980-12-31 01:10:23',
|
|
86
|
+
`timestamp_6`='1991-01-02 22:15:10.000006',
|
|
87
|
+
`year`=1923,
|
|
88
|
+
`char_100`='This is a test of a 100 character column.',
|
|
89
|
+
`binary_100`=x'000102030405060708090A0B0C0D0E0F',
|
|
90
|
+
`varchar_200`='This is a test of a variable character column.',
|
|
91
|
+
`varbinary_200`=x'000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F',
|
|
92
|
+
`longtext`='This is a longtext column.',
|
|
93
|
+
`mediumtext`='This is a mediumtext column.',
|
|
94
|
+
`text`='This is a text column.',
|
|
95
|
+
`tinytext`='This is a tinytext column.',
|
|
96
|
+
`longblob`=x'000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F',
|
|
97
|
+
`mediumblob`=x'000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F',
|
|
98
|
+
`blob`=x'000102030405060708090A0B0C0D0E0F',
|
|
99
|
+
`tinyblob`=x'0A0B0C0D0E0F',
|
|
100
|
+
`json`='{"a": 10, "b": 2.75, "c": "hello world"}',
|
|
101
|
+
`enum`='one',
|
|
102
|
+
`set`='two',
|
|
103
|
+
`bit`=128
|
|
104
|
+
;
|
|
105
|
+
|
|
106
|
+
INSERT INTO alltypes SET
|
|
107
|
+
`id`=1,
|
|
108
|
+
`tinyint`=NULL,
|
|
109
|
+
`bool`=NULL,
|
|
110
|
+
`boolean`=NULL,
|
|
111
|
+
`smallint`=NULL,
|
|
112
|
+
`mediumint`=NULL,
|
|
113
|
+
`int24`=NULL,
|
|
114
|
+
`int`=NULL,
|
|
115
|
+
`integer`=NULL,
|
|
116
|
+
`bigint`=NULL,
|
|
117
|
+
`float`=NULL,
|
|
118
|
+
`double`=NULL,
|
|
119
|
+
`real`=NULL,
|
|
120
|
+
`decimal`=NULL,
|
|
121
|
+
`dec`=NULL,
|
|
122
|
+
`fixed`=NULL,
|
|
123
|
+
`numeric`=NULL,
|
|
124
|
+
`date`=NULL,
|
|
125
|
+
`time`=NULL,
|
|
126
|
+
`time_6`=NULL,
|
|
127
|
+
`datetime`=NULL,
|
|
128
|
+
`datetime_6`=NULL,
|
|
129
|
+
`timestamp`=NULL,
|
|
130
|
+
`timestamp_6`=NULL,
|
|
131
|
+
`year`=NULL,
|
|
132
|
+
`char_100`=NULL,
|
|
133
|
+
`binary_100`=NULL,
|
|
134
|
+
`varchar_200`=NULL,
|
|
135
|
+
`longtext`=NULL,
|
|
136
|
+
`mediumtext`=NULL,
|
|
137
|
+
`text`=NULL,
|
|
138
|
+
`tinytext`=NULL,
|
|
139
|
+
`longblob`=NULL,
|
|
140
|
+
`mediumblob`=NULL,
|
|
141
|
+
`blob`=NULL,
|
|
142
|
+
`tinyblob`=NULL,
|
|
143
|
+
`json`=NULL,
|
|
144
|
+
`enum`=NULL,
|
|
145
|
+
`set`=NULL,
|
|
146
|
+
`bit`=NULL
|
|
147
|
+
;
|
|
148
|
+
|
|
149
|
+
-- Minimum values
|
|
150
|
+
INSERT INTO alltypes SET
|
|
151
|
+
`id`=2,
|
|
152
|
+
`tinyint`=-128,
|
|
153
|
+
`unsigned_tinyint`=0,
|
|
154
|
+
`bool`=-128,
|
|
155
|
+
`boolean`=-128,
|
|
156
|
+
`smallint`=-32768,
|
|
157
|
+
`unsigned_smallint`=0,
|
|
158
|
+
`mediumint`=-8388608,
|
|
159
|
+
`unsigned_mediumint`=0,
|
|
160
|
+
`int24`=-8388608,
|
|
161
|
+
`unsigned_int24`=0,
|
|
162
|
+
`int`=-2147483648,
|
|
163
|
+
`unsigned_int`=0,
|
|
164
|
+
`integer`=-2147483648,
|
|
165
|
+
`unsigned_integer`=0,
|
|
166
|
+
`bigint`=-9223372036854775808,
|
|
167
|
+
`unsigned_bigint`=0,
|
|
168
|
+
`float`=0,
|
|
169
|
+
`double`=-1.7976931348623158e308,
|
|
170
|
+
`real`=-1.7976931348623158e308,
|
|
171
|
+
`decimal`=-99999999999999.999999,
|
|
172
|
+
`dec`=-99999999999999.999999,
|
|
173
|
+
`fixed`=-99999999999999.999999,
|
|
174
|
+
`numeric`=-99999999999999.999999,
|
|
175
|
+
`date`='1000-01-01',
|
|
176
|
+
`time`='-838:59:59',
|
|
177
|
+
`time_6`='-838:59:59.000000',
|
|
178
|
+
`datetime`='1000-01-01 00:00:00',
|
|
179
|
+
`datetime_6`='1000-01-01 00:00:00.000000',
|
|
180
|
+
`timestamp`='1970-01-01 00:00:01',
|
|
181
|
+
`timestamp_6`='1970-01-01 00:00:01.000000',
|
|
182
|
+
`year`=1901,
|
|
183
|
+
`char_100`='',
|
|
184
|
+
`binary_100`=x'',
|
|
185
|
+
`varchar_200`='',
|
|
186
|
+
`varbinary_200`=x'',
|
|
187
|
+
`longtext`='',
|
|
188
|
+
`mediumtext`='',
|
|
189
|
+
`text`='',
|
|
190
|
+
`tinytext`='',
|
|
191
|
+
`longblob`=x'',
|
|
192
|
+
`mediumblob`=x'',
|
|
193
|
+
`blob`=x'',
|
|
194
|
+
`tinyblob`=x'',
|
|
195
|
+
`json`='{}',
|
|
196
|
+
`enum`='one',
|
|
197
|
+
`set`='two',
|
|
198
|
+
`bit`=0
|
|
199
|
+
;
|
|
200
|
+
|
|
201
|
+
-- Maximum values
|
|
202
|
+
INSERT INTO alltypes SET
|
|
203
|
+
`id`=3,
|
|
204
|
+
`tinyint`=127,
|
|
205
|
+
`unsigned_tinyint`=255,
|
|
206
|
+
`bool`=127,
|
|
207
|
+
`boolean`=127,
|
|
208
|
+
`smallint`=32767,
|
|
209
|
+
`unsigned_smallint`=65535,
|
|
210
|
+
`mediumint`=8388607,
|
|
211
|
+
`unsigned_mediumint`=16777215,
|
|
212
|
+
`int24`=8388607,
|
|
213
|
+
`unsigned_int24`=16777215,
|
|
214
|
+
`int`=2147483647,
|
|
215
|
+
`unsigned_int`=4294967295,
|
|
216
|
+
`integer`=2147483647,
|
|
217
|
+
`unsigned_integer`=4294967295,
|
|
218
|
+
`bigint`=9223372036854775807,
|
|
219
|
+
`unsigned_bigint`=18446744073709551615,
|
|
220
|
+
`float`=0,
|
|
221
|
+
`double`=1.7976931348623158e308,
|
|
222
|
+
`real`=1.7976931348623158e308,
|
|
223
|
+
`decimal`=99999999999999.999999,
|
|
224
|
+
`dec`=99999999999999.999999,
|
|
225
|
+
`fixed`=99999999999999.999999,
|
|
226
|
+
`numeric`=99999999999999.999999,
|
|
227
|
+
`date`='9999-12-31',
|
|
228
|
+
`time`='838:59:59',
|
|
229
|
+
`time_6`='838:59:59.999999',
|
|
230
|
+
`datetime`='9999-12-31 23:59:59',
|
|
231
|
+
`datetime_6`='9999-12-31 23:59:59.999999',
|
|
232
|
+
`timestamp`='2038-01-18 21:14:07',
|
|
233
|
+
`timestamp_6`='2038-01-18 21:14:07.999999',
|
|
234
|
+
`year`=2155,
|
|
235
|
+
`char_100`='',
|
|
236
|
+
`binary_100`=x'',
|
|
237
|
+
`varchar_200`='',
|
|
238
|
+
`varbinary_200`=x'',
|
|
239
|
+
`longtext`='',
|
|
240
|
+
`mediumtext`='',
|
|
241
|
+
`text`='',
|
|
242
|
+
`tinytext`='',
|
|
243
|
+
`longblob`=x'',
|
|
244
|
+
`mediumblob`=x'',
|
|
245
|
+
`blob`=x'',
|
|
246
|
+
`tinyblob`=x'',
|
|
247
|
+
`json`='{}',
|
|
248
|
+
`enum`='one',
|
|
249
|
+
`set`='two',
|
|
250
|
+
`bit`=18446744073709551615
|
|
251
|
+
;
|
|
252
|
+
|
|
253
|
+
-- Zero values
|
|
254
|
+
--
|
|
255
|
+
-- Note that v8 of SingleStoreDB does not allow zero date/times by
|
|
256
|
+
-- default, so they are set to NULL here.
|
|
257
|
+
--
|
|
258
|
+
INSERT INTO alltypes SET
|
|
259
|
+
`id`=4,
|
|
260
|
+
`tinyint`=0,
|
|
261
|
+
`unsigned_tinyint`=0,
|
|
262
|
+
`bool`=0,
|
|
263
|
+
`boolean`=0,
|
|
264
|
+
`smallint`=0,
|
|
265
|
+
`unsigned_smallint`=0,
|
|
266
|
+
`mediumint`=0,
|
|
267
|
+
`unsigned_mediumint`=0,
|
|
268
|
+
`int24`=0,
|
|
269
|
+
`unsigned_int24`=0,
|
|
270
|
+
`int`=0,
|
|
271
|
+
`unsigned_int`=0,
|
|
272
|
+
`integer`=0,
|
|
273
|
+
`unsigned_integer`=0,
|
|
274
|
+
`bigint`=0,
|
|
275
|
+
`unsigned_bigint`=0,
|
|
276
|
+
`float`=0,
|
|
277
|
+
`double`=0.0,
|
|
278
|
+
`real`=0.0,
|
|
279
|
+
`decimal`=0.0,
|
|
280
|
+
`dec`=0.0,
|
|
281
|
+
`fixed`=0.0,
|
|
282
|
+
`numeric`=0.0,
|
|
283
|
+
`date`=NULL,
|
|
284
|
+
`time`='00:00:00',
|
|
285
|
+
`time_6`='00:00:00.000000',
|
|
286
|
+
`datetime`=NULL,
|
|
287
|
+
`datetime_6`=NULL,
|
|
288
|
+
`timestamp`=NULL,
|
|
289
|
+
`timestamp_6`=NULL,
|
|
290
|
+
`year`=NULL,
|
|
291
|
+
`char_100`='',
|
|
292
|
+
`binary_100`=x'',
|
|
293
|
+
`varchar_200`='',
|
|
294
|
+
`varbinary_200`=x'',
|
|
295
|
+
`longtext`='',
|
|
296
|
+
`mediumtext`='',
|
|
297
|
+
`text`='',
|
|
298
|
+
`tinytext`='',
|
|
299
|
+
`longblob`=x'',
|
|
300
|
+
`mediumblob`=x'',
|
|
301
|
+
`blob`=x'',
|
|
302
|
+
`tinyblob`=x'',
|
|
303
|
+
`json`='{}',
|
|
304
|
+
`enum`='one',
|
|
305
|
+
`set`='two',
|
|
306
|
+
`bit`=0
|
|
307
|
+
;
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS alltypes_no_nulls (
|
|
2
|
+
`id` INT(11) NOT NULL,
|
|
3
|
+
`tinyint` TINYINT NOT NULL,
|
|
4
|
+
`unsigned_tinyint` TINYINT UNSIGNED NOT NULL,
|
|
5
|
+
`bool` BOOL NOT NULL,
|
|
6
|
+
`boolean` BOOLEAN NOT NULL,
|
|
7
|
+
`smallint` SMALLINT NOT NULL,
|
|
8
|
+
`unsigned_smallint` SMALLINT UNSIGNED NOT NULL,
|
|
9
|
+
`mediumint` MEDIUMINT NOT NULL,
|
|
10
|
+
`unsigned_mediumint` MEDIUMINT UNSIGNED NOT NULL,
|
|
11
|
+
`int24` MEDIUMINT NOT NULL,
|
|
12
|
+
`unsigned_int24` MEDIUMINT UNSIGNED NOT NULL,
|
|
13
|
+
`int` INT NOT NULL,
|
|
14
|
+
`unsigned_int` INT UNSIGNED NOT NULL,
|
|
15
|
+
`integer` INTEGER NOT NULL,
|
|
16
|
+
`unsigned_integer` INTEGER UNSIGNED NOT NULL,
|
|
17
|
+
`bigint` BIGINT NOT NULL,
|
|
18
|
+
`unsigned_bigint` BIGINT UNSIGNED NOT NULL,
|
|
19
|
+
`float` FLOAT NOT NULL,
|
|
20
|
+
`double` DOUBLE NOT NULL,
|
|
21
|
+
`real` REAL NOT NULL,
|
|
22
|
+
`decimal` DECIMAL(20,6) NOT NULL,
|
|
23
|
+
`dec` DEC(20,6) NOT NULL,
|
|
24
|
+
`fixed` FIXED(20,6) NOT NULL,
|
|
25
|
+
`numeric` NUMERIC(20,6) NOT NULL,
|
|
26
|
+
`date` DATE NOT NULL,
|
|
27
|
+
`time` TIME NOT NULL,
|
|
28
|
+
`time_6` TIME(6) NOT NULL,
|
|
29
|
+
`datetime` DATETIME NOT NULL,
|
|
30
|
+
`datetime_6` DATETIME(6) NOT NULL,
|
|
31
|
+
`timestamp` TIMESTAMP NOT NULL,
|
|
32
|
+
`timestamp_6` TIMESTAMP(6) NOT NULL,
|
|
33
|
+
`year` YEAR NOT NULL,
|
|
34
|
+
`char_100` CHAR(100) NOT NULL,
|
|
35
|
+
`binary_100` BINARY(100) NOT NULL,
|
|
36
|
+
`varchar_200` VARCHAR(200) NOT NULL,
|
|
37
|
+
`varbinary_200` VARBINARY(200) NOT NULL,
|
|
38
|
+
`longtext` LONGTEXT NOT NULL,
|
|
39
|
+
`mediumtext` MEDIUMTEXT NOT NULL,
|
|
40
|
+
`text` TEXT NOT NULL,
|
|
41
|
+
`tinytext` TINYTEXT NOT NULL,
|
|
42
|
+
`longblob` LONGBLOB NOT NULL,
|
|
43
|
+
`mediumblob` MEDIUMBLOB NOT NULL,
|
|
44
|
+
`blob` BLOB NOT NULL,
|
|
45
|
+
`tinyblob` TINYBLOB NOT NULL,
|
|
46
|
+
`json` JSON NOT NULL,
|
|
47
|
+
-- `geographypoint` GEOGRAPHYPOINT NOT NULL,
|
|
48
|
+
-- `geography` GEOGRAPHY NOT NULL,
|
|
49
|
+
`enum` ENUM('one', 'two', 'three') NOT NULL,
|
|
50
|
+
`set` SET('one', 'two', 'three') NOT NULL,
|
|
51
|
+
`bit` BIT NOT NULL
|
|
52
|
+
)
|
|
53
|
+
COLLATE='utf8_unicode_ci';
|
|
54
|
+
|
|
55
|
+
INSERT INTO alltypes_no_nulls SET
|
|
56
|
+
`id`=0,
|
|
57
|
+
`tinyint`=80,
|
|
58
|
+
`unsigned_tinyint`=85,
|
|
59
|
+
`bool`=0,
|
|
60
|
+
`boolean`=1,
|
|
61
|
+
`smallint`=-27897,
|
|
62
|
+
`unsigned_smallint`=27897,
|
|
63
|
+
`mediumint`=104729,
|
|
64
|
+
`unsigned_mediumint`=120999,
|
|
65
|
+
`int24`=-200899,
|
|
66
|
+
`unsigned_int24`=407709,
|
|
67
|
+
`int`=-1295369311,
|
|
68
|
+
`unsigned_int`=3872362332,
|
|
69
|
+
`integer`=-1741727421,
|
|
70
|
+
`unsigned_integer`=3198387363,
|
|
71
|
+
`bigint`=-266883847,
|
|
72
|
+
`unsigned_bigint`=980007287362,
|
|
73
|
+
`float`=-146486683.754744,
|
|
74
|
+
`double`=-474646154.719356,
|
|
75
|
+
`real`=-901409776.279346,
|
|
76
|
+
`decimal`=28111097.610822,
|
|
77
|
+
`dec`=389451155.931428,
|
|
78
|
+
`fixed`=-143773416.044092,
|
|
79
|
+
`numeric`=866689461.300046,
|
|
80
|
+
`date`='8524-11-10',
|
|
81
|
+
`time`='00:07:00',
|
|
82
|
+
`time_6`='01:10:00.000002',
|
|
83
|
+
`datetime`='9948-03-11 15:29:22',
|
|
84
|
+
`datetime_6`='1756-10-29 02:02:42.000008',
|
|
85
|
+
`timestamp`='1980-12-31 01:10:23',
|
|
86
|
+
`timestamp_6`='1991-01-02 22:15:10.000006',
|
|
87
|
+
`year`=1923,
|
|
88
|
+
`char_100`='This is a test of a 100 character column.',
|
|
89
|
+
`binary_100`=x'000102030405060708090A0B0C0D0E0F',
|
|
90
|
+
`varchar_200`='This is a test of a variable character column.',
|
|
91
|
+
`varbinary_200`=x'000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F',
|
|
92
|
+
`longtext`='This is a longtext column.',
|
|
93
|
+
`mediumtext`='This is a mediumtext column.',
|
|
94
|
+
`text`='This is a text column.',
|
|
95
|
+
`tinytext`='This is a tinytext column.',
|
|
96
|
+
`longblob`=x'000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F',
|
|
97
|
+
`mediumblob`=x'000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F',
|
|
98
|
+
`blob`=x'000102030405060708090A0B0C0D0E0F',
|
|
99
|
+
`tinyblob`=x'0A0B0C0D0E0F',
|
|
100
|
+
`json`='{"a": 10, "b": 2.75, "c": "hello world"}',
|
|
101
|
+
`enum`='one',
|
|
102
|
+
`set`='two',
|
|
103
|
+
`bit`=128
|
|
104
|
+
;
|
|
105
|
+
|
|
106
|
+
-- Minimum values
|
|
107
|
+
INSERT INTO alltypes_no_nulls SET
|
|
108
|
+
`id`=2,
|
|
109
|
+
`tinyint`=-128,
|
|
110
|
+
`unsigned_tinyint`=0,
|
|
111
|
+
`bool`=-128,
|
|
112
|
+
`boolean`=-128,
|
|
113
|
+
`smallint`=-32768,
|
|
114
|
+
`unsigned_smallint`=0,
|
|
115
|
+
`mediumint`=-8388608,
|
|
116
|
+
`unsigned_mediumint`=0,
|
|
117
|
+
`int24`=-8388608,
|
|
118
|
+
`unsigned_int24`=0,
|
|
119
|
+
`int`=-2147483648,
|
|
120
|
+
`unsigned_int`=0,
|
|
121
|
+
`integer`=-2147483648,
|
|
122
|
+
`unsigned_integer`=0,
|
|
123
|
+
`bigint`=-9223372036854775808,
|
|
124
|
+
`unsigned_bigint`=0,
|
|
125
|
+
`float`=0,
|
|
126
|
+
`double`=-1.7976931348623158e308,
|
|
127
|
+
`real`=-1.7976931348623158e308,
|
|
128
|
+
`decimal`=-99999999999999.999999,
|
|
129
|
+
`dec`=-99999999999999.999999,
|
|
130
|
+
`fixed`=-99999999999999.999999,
|
|
131
|
+
`numeric`=-99999999999999.999999,
|
|
132
|
+
`date`='1000-01-01',
|
|
133
|
+
`time`='-838:59:59',
|
|
134
|
+
`time_6`='-838:59:59.000000',
|
|
135
|
+
`datetime`='1000-01-01 00:00:00',
|
|
136
|
+
`datetime_6`='1000-01-01 00:00:00.000000',
|
|
137
|
+
`timestamp`='1970-01-01 00:00:01',
|
|
138
|
+
`timestamp_6`='1970-01-01 00:00:01.000000',
|
|
139
|
+
`year`=1901,
|
|
140
|
+
`char_100`='',
|
|
141
|
+
`binary_100`=x'',
|
|
142
|
+
`varchar_200`='',
|
|
143
|
+
`varbinary_200`=x'',
|
|
144
|
+
`longtext`='',
|
|
145
|
+
`mediumtext`='',
|
|
146
|
+
`text`='',
|
|
147
|
+
`tinytext`='',
|
|
148
|
+
`longblob`=x'',
|
|
149
|
+
`mediumblob`=x'',
|
|
150
|
+
`blob`=x'',
|
|
151
|
+
`tinyblob`=x'',
|
|
152
|
+
`json`='{}',
|
|
153
|
+
`enum`='one',
|
|
154
|
+
`set`='two',
|
|
155
|
+
`bit`=0
|
|
156
|
+
;
|
|
157
|
+
|
|
158
|
+
-- Maximum values
|
|
159
|
+
INSERT INTO alltypes_no_nulls SET
|
|
160
|
+
`id`=3,
|
|
161
|
+
`tinyint`=127,
|
|
162
|
+
`unsigned_tinyint`=255,
|
|
163
|
+
`bool`=127,
|
|
164
|
+
`boolean`=127,
|
|
165
|
+
`smallint`=32767,
|
|
166
|
+
`unsigned_smallint`=65535,
|
|
167
|
+
`mediumint`=8388607,
|
|
168
|
+
`unsigned_mediumint`=16777215,
|
|
169
|
+
`int24`=8388607,
|
|
170
|
+
`unsigned_int24`=16777215,
|
|
171
|
+
`int`=2147483647,
|
|
172
|
+
`unsigned_int`=4294967295,
|
|
173
|
+
`integer`=2147483647,
|
|
174
|
+
`unsigned_integer`=4294967295,
|
|
175
|
+
`bigint`=9223372036854775807,
|
|
176
|
+
`unsigned_bigint`=18446744073709551615,
|
|
177
|
+
`float`=0,
|
|
178
|
+
`double`=1.7976931348623158e308,
|
|
179
|
+
`real`=1.7976931348623158e308,
|
|
180
|
+
`decimal`=99999999999999.999999,
|
|
181
|
+
`dec`=99999999999999.999999,
|
|
182
|
+
`fixed`=99999999999999.999999,
|
|
183
|
+
`numeric`=99999999999999.999999,
|
|
184
|
+
`date`='9999-12-31',
|
|
185
|
+
`time`='838:59:59',
|
|
186
|
+
`time_6`='838:59:59.999999',
|
|
187
|
+
`datetime`='9999-12-31 23:59:59',
|
|
188
|
+
`datetime_6`='9999-12-31 23:59:59.999999',
|
|
189
|
+
`timestamp`='2038-01-18 21:14:07',
|
|
190
|
+
`timestamp_6`='2038-01-18 21:14:07.999999',
|
|
191
|
+
`year`=2155,
|
|
192
|
+
`char_100`='',
|
|
193
|
+
`binary_100`=x'',
|
|
194
|
+
`varchar_200`='',
|
|
195
|
+
`varbinary_200`=x'',
|
|
196
|
+
`longtext`='',
|
|
197
|
+
`mediumtext`='',
|
|
198
|
+
`text`='',
|
|
199
|
+
`tinytext`='',
|
|
200
|
+
`longblob`=x'',
|
|
201
|
+
`mediumblob`=x'',
|
|
202
|
+
`blob`=x'',
|
|
203
|
+
`tinyblob`=x'',
|
|
204
|
+
`json`='{}',
|
|
205
|
+
`enum`='one',
|
|
206
|
+
`set`='two',
|
|
207
|
+
`bit`=18446744073709551615
|
|
208
|
+
;
|
|
@@ -1446,7 +1446,7 @@ class TestConnection(unittest.TestCase):
|
|
|
1446
1446
|
# Recent versions of polars have a problem with decimals
|
|
1447
1447
|
class FixCompare(str):
|
|
1448
1448
|
def __eq__(self, other):
|
|
1449
|
-
return super().__eq__(other.replace('precision=None', 'precision=
|
|
1449
|
+
return super().__eq__(other.replace('precision=None', 'precision=20'))
|
|
1450
1450
|
|
|
1451
1451
|
dtypes = [
|
|
1452
1452
|
('id', 'Int32'),
|
|
@@ -1469,10 +1469,10 @@ class TestConnection(unittest.TestCase):
|
|
|
1469
1469
|
('float', 'Float32'),
|
|
1470
1470
|
('double', 'Float64'),
|
|
1471
1471
|
('real', 'Float64'),
|
|
1472
|
-
('decimal', FixCompare('Decimal(precision=
|
|
1473
|
-
('dec', FixCompare('Decimal(precision=
|
|
1474
|
-
('fixed', FixCompare('Decimal(precision=
|
|
1475
|
-
('numeric', FixCompare('Decimal(precision=
|
|
1472
|
+
('decimal', FixCompare('Decimal(precision=20, scale=6)')),
|
|
1473
|
+
('dec', FixCompare('Decimal(precision=20, scale=6)')),
|
|
1474
|
+
('fixed', FixCompare('Decimal(precision=20, scale=6)')),
|
|
1475
|
+
('numeric', FixCompare('Decimal(precision=20, scale=6)')),
|
|
1476
1476
|
('date', 'Date'),
|
|
1477
1477
|
('time', "Duration(time_unit='us')"),
|
|
1478
1478
|
('time_6', "Duration(time_unit='us')"),
|
|
@@ -1593,7 +1593,7 @@ class TestConnection(unittest.TestCase):
|
|
|
1593
1593
|
# Recent versions of polars have a problem with decimals
|
|
1594
1594
|
class FixCompare(str):
|
|
1595
1595
|
def __eq__(self, other):
|
|
1596
|
-
return super().__eq__(other.replace('precision=None', 'precision=
|
|
1596
|
+
return super().__eq__(other.replace('precision=None', 'precision=20'))
|
|
1597
1597
|
|
|
1598
1598
|
dtypes = [
|
|
1599
1599
|
('id', 'Int32'),
|
|
@@ -1616,10 +1616,10 @@ class TestConnection(unittest.TestCase):
|
|
|
1616
1616
|
('float', 'Float32'),
|
|
1617
1617
|
('double', 'Float64'),
|
|
1618
1618
|
('real', 'Float64'),
|
|
1619
|
-
('decimal', FixCompare('Decimal(precision=
|
|
1620
|
-
('dec', FixCompare('Decimal(precision=
|
|
1621
|
-
('fixed', FixCompare('Decimal(precision=
|
|
1622
|
-
('numeric', FixCompare('Decimal(precision=
|
|
1619
|
+
('decimal', FixCompare('Decimal(precision=20, scale=6)')),
|
|
1620
|
+
('dec', FixCompare('Decimal(precision=20, scale=6)')),
|
|
1621
|
+
('fixed', FixCompare('Decimal(precision=20, scale=6)')),
|
|
1622
|
+
('numeric', FixCompare('Decimal(precision=20, scale=6)')),
|
|
1623
1623
|
('date', 'Date'),
|
|
1624
1624
|
('time', "Duration(time_unit='us')"),
|
|
1625
1625
|
('time_6', "Duration(time_unit='us')"),
|
|
@@ -1825,10 +1825,10 @@ class TestConnection(unittest.TestCase):
|
|
|
1825
1825
|
('float', 'float'),
|
|
1826
1826
|
('double', 'double'),
|
|
1827
1827
|
('real', 'double'),
|
|
1828
|
-
('decimal', 'decimal128(
|
|
1829
|
-
('dec', 'decimal128(
|
|
1830
|
-
('fixed', 'decimal128(
|
|
1831
|
-
('numeric', 'decimal128(
|
|
1828
|
+
('decimal', 'decimal128(20, 6)'),
|
|
1829
|
+
('dec', 'decimal128(20, 6)'),
|
|
1830
|
+
('fixed', 'decimal128(20, 6)'),
|
|
1831
|
+
('numeric', 'decimal128(20, 6)'),
|
|
1832
1832
|
('date', 'date64[ms]'),
|
|
1833
1833
|
('time', 'duration[us]'),
|
|
1834
1834
|
('time_6', 'duration[us]'),
|
|
@@ -1964,10 +1964,10 @@ class TestConnection(unittest.TestCase):
|
|
|
1964
1964
|
('float', 'float'),
|
|
1965
1965
|
('double', 'double'),
|
|
1966
1966
|
('real', 'double'),
|
|
1967
|
-
('decimal', 'decimal128(
|
|
1968
|
-
('dec', 'decimal128(
|
|
1969
|
-
('fixed', 'decimal128(
|
|
1970
|
-
('numeric', 'decimal128(
|
|
1967
|
+
('decimal', 'decimal128(20, 6)'),
|
|
1968
|
+
('dec', 'decimal128(20, 6)'),
|
|
1969
|
+
('fixed', 'decimal128(20, 6)'),
|
|
1970
|
+
('numeric', 'decimal128(20, 6)'),
|
|
1971
1971
|
('date', 'date64[ms]'),
|
|
1972
1972
|
('time', 'duration[us]'),
|
|
1973
1973
|
('time_6', 'duration[us]'),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
_singlestoredb_accel.pyd,sha256=
|
|
2
|
-
singlestoredb/__init__.py,sha256=
|
|
1
|
+
_singlestoredb_accel.pyd,sha256=8mNvo1zBgZ0lTFNQ67pW34WHw8HUa2Jy-j5GTeWiRw4,66048
|
|
2
|
+
singlestoredb/__init__.py,sha256=x67d-TOKMVTj3x5cKh8AQ9eNDWM-SroF0SsCs4XHOHM,2347
|
|
3
3
|
singlestoredb/auth.py,sha256=RmYiH0Wlc2RXc4pTlRMysxtBI445ggCIwojWKC_eDLE,7844
|
|
4
4
|
singlestoredb/config.py,sha256=rS8OmWMaHfMJQTkmSw_qwXR2R0HP80eP4gjzVmXkL2E,14419
|
|
5
5
|
singlestoredb/connection.py,sha256=I2AP_0l7hNARfXiSuVW953CsGYn_rKbTg_NyWEiGHbY,47542
|
|
@@ -48,7 +48,7 @@ singlestoredb/functions/signature.py,sha256=1aSFezUgWSRsGcrBjOVVZyZgw0q356y7IWgM
|
|
|
48
48
|
singlestoredb/functions/utils.py,sha256=lZPxdYfHxrSfxGWCoF0YZyakVy2iYlozJ1lPSaPKRlo,11190
|
|
49
49
|
singlestoredb/functions/ext/__init__.py,sha256=5ppI8IZN_zOwoJFdu_Oq9ipxtyHw9n6OMVAa_s9T_yY,24
|
|
50
50
|
singlestoredb/functions/ext/arrow.py,sha256=mQhwaMpvCH_dP92WIhP_j-stu272n4UAHsFUOBTgnq0,9436
|
|
51
|
-
singlestoredb/functions/ext/asgi.py,sha256=
|
|
51
|
+
singlestoredb/functions/ext/asgi.py,sha256=iyM5t8OCmd9nBtB66nmTjYqwXQhcUxvvMfsnPwU4q8k,74507
|
|
52
52
|
singlestoredb/functions/ext/json.py,sha256=j9133xOpyuSqb8smBmi_bPvv6OYCbNfpbLbEicyGqmQ,10522
|
|
53
53
|
singlestoredb/functions/ext/mmap.py,sha256=0BN9OyEONZ174qdZWe2m3Xykt3-QcxyLYBt2iCG772Q,14123
|
|
54
54
|
singlestoredb/functions/ext/rowdat_1.py,sha256=UNMMUA8mb6iIRfJV2FsdA20Sw6s-LEdHQ_tC4K4g70Q,21836
|
|
@@ -71,9 +71,9 @@ singlestoredb/fusion/handlers/job.py,sha256=3enfxHwERH7T4u0FEwOPN0IL0GtepaCYgEsi
|
|
|
71
71
|
singlestoredb/fusion/handlers/models.py,sha256=MglLrl57l7sG2K0MDnmnO1wnocdcbEIWvAJS6W74VgE,6481
|
|
72
72
|
singlestoredb/fusion/handlers/stage.py,sha256=oNl11GYUUQHmIrWsqaA1X8lokvFxFgN0Cez7h3o8XK8,14774
|
|
73
73
|
singlestoredb/fusion/handlers/utils.py,sha256=nV2lSzKhv7CzM7I_uIh5kmDV0Ec6VeeKoHczx5pVNcw,11009
|
|
74
|
-
singlestoredb/fusion/handlers/workspace.py,sha256=
|
|
74
|
+
singlestoredb/fusion/handlers/workspace.py,sha256=2m8tBM6XY4nUk64uY7puqecFc7fBNQo2G9nDaO2nlS0,30623
|
|
75
75
|
singlestoredb/http/__init__.py,sha256=4cEDvLloGc3LSpU-PnIwacyu0n5oIIIE6xk2SPyWD_w,939
|
|
76
|
-
singlestoredb/http/connection.py,sha256=
|
|
76
|
+
singlestoredb/http/connection.py,sha256=dDoSUOlKlKYkGUpcLkSV76V72HWQeUM9NohcoLtFop8,40994
|
|
77
77
|
singlestoredb/magics/__init__.py,sha256=fqCBQ0s8o1CYE4Xo_XiSbkLDzLgMNDgpSkOx66-uDZw,1244
|
|
78
78
|
singlestoredb/magics/run_personal.py,sha256=D71VVRk-qQAZf6fHUbxqTadxcopSklJu7ccoQ82uhV8,5359
|
|
79
79
|
singlestoredb/magics/run_shared.py,sha256=9Lo3hmESgp0gGLaL1pgLtTA6qsbIZluM7mufcoCAVcI,5264
|
|
@@ -88,7 +88,7 @@ singlestoredb/management/manager.py,sha256=SR4FvzxYXrn5WruiHG99upZn-8TPgRUSLW8zB
|
|
|
88
88
|
singlestoredb/management/organization.py,sha256=viFG8eLVOs-NeoL6zm8nypFRQ-oiRDD2Sk-bL2b6hvw,6095
|
|
89
89
|
singlestoredb/management/region.py,sha256=4c4z6ETYrSIK3wm2UA4Wr2Td1UgoechN0l1-mqy5bvQ,4283
|
|
90
90
|
singlestoredb/management/utils.py,sha256=RtFhdIIliQ6aulYs99fgAQ0FxL2LfV-5oPRd9s_bBok,13626
|
|
91
|
-
singlestoredb/management/workspace.py,sha256=
|
|
91
|
+
singlestoredb/management/workspace.py,sha256=nEQDkMkIiwhh_sPlbQ-m0XDYx8bk44X7p5COCN5ja2M,63874
|
|
92
92
|
singlestoredb/mysql/__init__.py,sha256=CbpwzNUJPAmKPpIobC0-ugBta_RgHCMq7X7N75QLReY,4669
|
|
93
93
|
singlestoredb/mysql/_auth.py,sha256=YaqqyvAHmeraBv3BM207rNveUVPM-mPnW20ts_ynVWg,8341
|
|
94
94
|
singlestoredb/mysql/charset.py,sha256=mnCdMpvdub1S2mm2PSk2j5JddgsWRjsVLtGx-y9TskE,10724
|
|
@@ -97,7 +97,7 @@ singlestoredb/mysql/converters.py,sha256=vebFFm6IrC0WgY-5Eh-esaPizY5cq3vDOUlEKGa
|
|
|
97
97
|
singlestoredb/mysql/cursors.py,sha256=YoZU5_weniqXcoeA0GVSxmetkPYooiDkXMbVBYUNlrU,27942
|
|
98
98
|
singlestoredb/mysql/err.py,sha256=aDbmfq08gWVmfgIea735wSeiFdvYbB5wusgd3qTVq1s,2480
|
|
99
99
|
singlestoredb/mysql/optionfile.py,sha256=bz0cZp8tQZvab1iU7OT0yldHyaMVbvAcUJ3TSNwcmyI,675
|
|
100
|
-
singlestoredb/mysql/protocol.py,sha256=
|
|
100
|
+
singlestoredb/mysql/protocol.py,sha256=8kQfOt3oINZkGzVgt762Hj-TMMUuf5dL0dUIpnki3iw,15335
|
|
101
101
|
singlestoredb/mysql/times.py,sha256=yJ3_hSnXnWMXl2OwXnx6hjX7PyilQ3bZHH9rIdL3OXQ,486
|
|
102
102
|
singlestoredb/mysql/constants/CLIENT.py,sha256=hAo5tQqhc1V7t7tdNd4s6TINwYoDHldyssfvfxNWWPQ,916
|
|
103
103
|
singlestoredb/mysql/constants/COMMAND.py,sha256=T81MAx6Vkxf5-86PTk2OtENoXtaFSlEckBzzwrI9uXQ,711
|
|
@@ -132,11 +132,13 @@ singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_dbapi20.py,sha256
|
|
|
132
132
|
singlestoredb/mysql/tests/thirdparty/test_MySQLdb/test_MySQLdb_nonstandard.py,sha256=K4EnQCWI_4ShmCv6xHSBDo0B2HVbJvGGYHWygp2bBBk,2920
|
|
133
133
|
singlestoredb/notebook/__init__.py,sha256=XGvAnkjV_6MjaNv6aqxqDL3ovPApKmNX-2UYH1t0cec,549
|
|
134
134
|
singlestoredb/notebook/_objects.py,sha256=rDfHGLLwrnuhVMOyNojzrGamykyfOQxZfH2EnFd8vEw,8256
|
|
135
|
-
singlestoredb/notebook/_portal.py,sha256=
|
|
135
|
+
singlestoredb/notebook/_portal.py,sha256=tC8OAw7iose2Ok4dI-bNLVKL2HH3yrijxq5oov6MIdM,11709
|
|
136
136
|
singlestoredb/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
137
|
singlestoredb/server/docker.py,sha256=gdGLEaUkPQJQ8u_1C1OQYr4iXPx1s6CmQmXKOrJFn3g,15095
|
|
138
138
|
singlestoredb/server/free_tier.py,sha256=rugYt_5jIC6AsE2UhR5hiLQKExyOqSXFyBoIaqG2pIc,8653
|
|
139
139
|
singlestoredb/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
140
|
+
singlestoredb/tests/alltypes.sql,sha256=spHLshI9lzO1DeDk6xD8Vr0dpomGEoGLdmzBHfilW9M,7955
|
|
141
|
+
singlestoredb/tests/alltypes_no_nulls.sql,sha256=Eh1gYyu86KnceKGbYvGRnHIQq2w6dpTZ6dvlW2fpq_E,6448
|
|
140
142
|
singlestoredb/tests/empty.sql,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
143
|
singlestoredb/tests/local_infile.csv,sha256=0fYxcZcTvcwS2McF4sktFsipRY1G-ClGmCRR1eCqdEQ,45
|
|
142
144
|
singlestoredb/tests/test.ipynb,sha256=IEgXbByXyWDplZvod1J2SqNHZiPOGdD4oNVMd0ArP7s,234
|
|
@@ -145,7 +147,7 @@ singlestoredb/tests/test2.ipynb,sha256=_kBQVvEoinQ1zInNcWFKpbdw-djkLsEO8l3g2MEU_
|
|
|
145
147
|
singlestoredb/tests/test2.sql,sha256=CEM8_lX189iQU65G3Pod7lig6osfrveQyoDz6HC35YQ,38
|
|
146
148
|
singlestoredb/tests/test_basics.py,sha256=tKzeSN8koMRFq5yjb98Wz5VWAOsnUKAETZEJyLhMD_o,49778
|
|
147
149
|
singlestoredb/tests/test_config.py,sha256=Ad0PDmCnJMOyy9f7WTKiRasSR_3mYRByUlSb7k5ZySg,11502
|
|
148
|
-
singlestoredb/tests/test_connection.py,sha256=
|
|
150
|
+
singlestoredb/tests/test_connection.py,sha256=PByQMKFDuRejxaLu8Bod8ZJxm4UgTogvz778TqcssEE,123340
|
|
149
151
|
singlestoredb/tests/test_dbapi.py,sha256=cNJoTEZvYG7ckcwT7xqlkJX-2TDEYGTDDU1Igucp48k,679
|
|
150
152
|
singlestoredb/tests/test_exceptions.py,sha256=vscMYmdOJr0JmkTAJrNI2w0Q96Nfugjkrt5_lYnw8i0,1176
|
|
151
153
|
singlestoredb/tests/test_ext_func.py,sha256=YidPnlO7HWsVIbPwdCa33Oo8SyGkP2_Pcuj_pu39r4s,47743
|
|
@@ -173,9 +175,9 @@ singlestoredb/utils/results.py,sha256=wR70LhCqlobniZf52r67zYLBOKjWHQm68NAskdRQND
|
|
|
173
175
|
singlestoredb/utils/xdict.py,sha256=-wi1lSPTnY99fhVMBhPKJ8cCsQhNG4GMUfkEBDKYgCw,13321
|
|
174
176
|
sqlx/__init__.py,sha256=4Sdn8HN-Hf8v0_wCt60DCckCg8BvgM3-9r4YVfZycRE,89
|
|
175
177
|
sqlx/magic.py,sha256=6VBlotgjautjev599tHaTYOfcfOA9m6gV_-P1_Qc4lI,3622
|
|
176
|
-
singlestoredb-1.15.
|
|
177
|
-
singlestoredb-1.15.
|
|
178
|
-
singlestoredb-1.15.
|
|
179
|
-
singlestoredb-1.15.
|
|
180
|
-
singlestoredb-1.15.
|
|
181
|
-
singlestoredb-1.15.
|
|
178
|
+
singlestoredb-1.15.5.dist-info/LICENSE,sha256=Bojenzui8aPNjlF3w4ojguDP7sTf8vFV_9Gc2UAG1sg,11542
|
|
179
|
+
singlestoredb-1.15.5.dist-info/METADATA,sha256=wlqAZwBHy_FHYlJX952WIH_z_LtaNvpy_v6KFCOHSsU,5949
|
|
180
|
+
singlestoredb-1.15.5.dist-info/WHEEL,sha256=c4k7z5HB0t-y0nBCv6KyJ6KCjn8SEGPddD0lhaPtU3E,96
|
|
181
|
+
singlestoredb-1.15.5.dist-info/entry_points.txt,sha256=bSLaTWB5zGjpVYPAaI46MkkDup0su-eb3uAhCNYuRV0,48
|
|
182
|
+
singlestoredb-1.15.5.dist-info/top_level.txt,sha256=lA65Vf4qAMfg_s1oG3LEO90h4t1Z-SPDbRqkevI3bSY,40
|
|
183
|
+
singlestoredb-1.15.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|