sqlalchemy-iris 0.17.1b2__tar.gz → 0.17.1b4__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.
- {sqlalchemy_iris-0.17.1b2/sqlalchemy_iris.egg-info → sqlalchemy_iris-0.17.1b4}/PKG-INFO +1 -1
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/setup.cfg +2 -2
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/base.py +3 -8
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/intersystems/__init__.py +42 -34
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/intersystems/dbapi.py +4 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/requirements.py +2 -2
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4/sqlalchemy_iris.egg-info}/PKG-INFO +1 -1
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris.egg-info/SOURCES.txt +0 -1
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/tests/test_alembic.py +12 -8
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/tests/test_suite.py +0 -1
- sqlalchemy_iris-0.17.1b2/sqlalchemy_iris/intersystems/cursor.py +0 -17
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/LICENSE +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/README.md +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_BufferReader.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_BufferWriter.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_ConnectionInformation.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_ConnectionParameters.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_Constant.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_DBList.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_Device.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_GatewayContext.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_GatewayException.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_GatewayUtility.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRIS.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISConnection.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISEmbedded.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISGlobalNode.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISGlobalNodeView.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISIterator.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISList.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISNative.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISOREF.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISObject.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISReference.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_InStream.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_LegacyIterator.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_ListItem.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_ListReader.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_ListWriter.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_LogFileStream.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_MessageHeader.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_OutStream.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_PrintStream.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_PythonGateway.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_SharedMemorySocket.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/__init__.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/__main__.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_Column.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_DBAPI.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_Descriptor.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_IRISStream.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_Message.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_Parameter.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_ParameterCollection.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_ResultSetRow.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_SQLType.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/__init__.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/preparser/_PreParser.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/preparser/_Scanner.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/preparser/_Token.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/preparser/_TokenList.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/preparser/__init__.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_BusinessHost.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_BusinessOperation.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_BusinessProcess.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_BusinessService.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_Common.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_Director.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_IRISBusinessOperation.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_IRISBusinessService.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_IRISInboundAdapter.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_IRISOutboundAdapter.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_InboundAdapter.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_Message.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_OutboundAdapter.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/__init__.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/irisnative/_IRISNative.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/irisnative/__init__.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/setup.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/__init__.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/alembic.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/embedded.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/information_schema.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/iris.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/irisasync.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/provision.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/types.py +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris.egg-info/dependency_links.txt +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris.egg-info/entry_points.txt +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris.egg-info/requires.txt +0 -0
- {sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[metadata]
|
2
2
|
name = sqlalchemy-iris
|
3
|
-
version = 0.17.
|
3
|
+
version = 0.17.1b4
|
4
4
|
description = InterSystems IRIS for SQLAlchemy
|
5
5
|
long_description = file: README.md
|
6
6
|
url = https://github.com/caretdev/sqlalchemy-iris
|
@@ -33,7 +33,7 @@ intersystems =
|
|
33
33
|
intersystems-irispython==5.1.0
|
34
34
|
|
35
35
|
[tool:pytest]
|
36
|
-
addopts = --tb native -v -r fxX
|
36
|
+
addopts = --tb native -v -r fxX -p no:warnings
|
37
37
|
|
38
38
|
[db]
|
39
39
|
default = iris://_SYSTEM:SYS@localhost:1972/USER
|
@@ -971,11 +971,9 @@ There are no access to %Dictionary, may be required for some advanced features,
|
|
971
971
|
|
972
972
|
def _get_option(self, connection, option):
|
973
973
|
with connection.cursor() as cursor:
|
974
|
-
cursor.execute("SELECT %SYSTEM_SQL.Util_GetOption(?)", option)
|
974
|
+
cursor.execute("SELECT %SYSTEM_SQL.Util_GetOption(?)", (option, ))
|
975
975
|
row = cursor.fetchone()
|
976
|
-
if row
|
977
|
-
return row[0]
|
978
|
-
return None
|
976
|
+
return row[0] if row else None
|
979
977
|
|
980
978
|
def _set_option(self, connection, option, value):
|
981
979
|
with connection.cursor() as cursor:
|
@@ -1091,10 +1089,7 @@ There are no access to %Dictionary, may be required for some advanced features,
|
|
1091
1089
|
if query.endswith(";"):
|
1092
1090
|
query = query[:-1]
|
1093
1091
|
self._debug(query, params)
|
1094
|
-
|
1095
|
-
cursor.execute(query, params)
|
1096
|
-
except Exception as ex:
|
1097
|
-
raise ex
|
1092
|
+
cursor.execute(query, params)
|
1098
1093
|
|
1099
1094
|
def do_executemany(self, cursor, query, params, context=None):
|
1100
1095
|
if query.endswith(";"):
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris/intersystems/__init__.py
RENAMED
@@ -1,12 +1,11 @@
|
|
1
1
|
import re
|
2
|
-
import
|
2
|
+
from typing import Any
|
3
3
|
from ..base import IRISDialect
|
4
|
-
from sqlalchemy import text, util
|
5
4
|
from ..base import IRISExecutionContext
|
6
5
|
from . import dbapi
|
7
|
-
from .dbapi import connect
|
8
|
-
from .cursor import InterSystemsCursorFetchStrategy
|
6
|
+
from .dbapi import connect
|
9
7
|
from .dbapi import IntegrityError, OperationalError, DatabaseError
|
8
|
+
from sqlalchemy.engine.cursor import CursorFetchStrategy
|
10
9
|
|
11
10
|
|
12
11
|
def remap_exception(func):
|
@@ -20,7 +19,7 @@ def remap_exception(func):
|
|
20
19
|
except RuntimeError as ex:
|
21
20
|
# [SQLCODE: <-119>:...
|
22
21
|
message = ex.args[0]
|
23
|
-
if
|
22
|
+
if "<LIST ERROR>" in message:
|
24
23
|
# just random error happens in the driver, try again
|
25
24
|
continue
|
26
25
|
sqlcode = re.findall(r"^\[SQLCODE: <(-\d+)>:", message)
|
@@ -28,27 +27,34 @@ def remap_exception(func):
|
|
28
27
|
raise Exception(message)
|
29
28
|
sqlcode = int(sqlcode[0])
|
30
29
|
if abs(sqlcode) in [108, 119, 121, 122]:
|
31
|
-
raise IntegrityError(message)
|
30
|
+
raise IntegrityError(sqlcode, message)
|
32
31
|
if abs(sqlcode) in [1, 12]:
|
33
|
-
raise OperationalError(message)
|
34
|
-
raise DatabaseError(message)
|
32
|
+
raise OperationalError(sqlcode, message)
|
33
|
+
raise DatabaseError(sqlcode, message)
|
35
34
|
|
36
35
|
return wrapper
|
37
36
|
|
38
37
|
|
38
|
+
class InterSystemsCursorFetchStrategy(CursorFetchStrategy):
|
39
|
+
|
40
|
+
def fetchone(
|
41
|
+
self,
|
42
|
+
result,
|
43
|
+
dbapi_cursor,
|
44
|
+
hard_close: bool = False,
|
45
|
+
) -> Any:
|
46
|
+
row = dbapi_cursor.fetchone()
|
47
|
+
return tuple(row) if row else None
|
48
|
+
|
49
|
+
|
39
50
|
class InterSystemsExecutionContext(IRISExecutionContext):
|
40
51
|
cursor_fetch_strategy = InterSystemsCursorFetchStrategy()
|
41
52
|
|
42
|
-
def create_cursor(self):
|
43
|
-
cursor = self._dbapi_connection.cursor()
|
44
|
-
cursor.sqlcode = 0
|
45
|
-
return cursor
|
46
|
-
|
47
53
|
|
48
54
|
class IRISDialect_intersystems(IRISDialect):
|
49
55
|
driver = "intersystems"
|
50
56
|
|
51
|
-
execution_ctx_cls = InterSystemsExecutionContext
|
57
|
+
# execution_ctx_cls = InterSystemsExecutionContext
|
52
58
|
|
53
59
|
supports_statement_cache = True
|
54
60
|
|
@@ -62,6 +68,8 @@ class IRISDialect_intersystems(IRISDialect):
|
|
62
68
|
|
63
69
|
logfile = None
|
64
70
|
|
71
|
+
server_version = None
|
72
|
+
|
65
73
|
def __init__(self, logfile: str = None, **kwargs):
|
66
74
|
self.logfile = logfile
|
67
75
|
IRISDialect.__init__(self, **kwargs)
|
@@ -115,27 +123,25 @@ class IRISDialect_intersystems(IRISDialect):
|
|
115
123
|
|
116
124
|
return ([], opts)
|
117
125
|
|
118
|
-
def
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
126
|
+
def on_connect(self):
|
127
|
+
super_ = super().on_connect()
|
128
|
+
|
129
|
+
def on_connect(conn):
|
130
|
+
if super_ is not None:
|
131
|
+
super_(conn)
|
132
|
+
|
133
|
+
server_version = dbapi.createIRIS(conn).classMethodValue(
|
134
|
+
"%SYSTEM.Version", "GetNumber"
|
135
|
+
)
|
136
|
+
server_version = server_version.split(".")
|
137
|
+
self.server_version = tuple(
|
138
|
+
[int("".join(filter(str.isdigit, v))) for v in server_version]
|
127
139
|
)
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
with connection.cursor() as cursor:
|
134
|
-
cursor.execute("SELECT %SYSTEM_SQL.Util_GetOption(?)", (option,))
|
135
|
-
row = cursor.fetchone()
|
136
|
-
if row:
|
137
|
-
return row[0]
|
138
|
-
return None
|
140
|
+
|
141
|
+
return on_connect
|
142
|
+
|
143
|
+
def _get_server_version_info(self, connection):
|
144
|
+
return self.server_version
|
139
145
|
|
140
146
|
def set_isolation_level(self, connection, level_str):
|
141
147
|
if level_str == "AUTOCOMMIT":
|
@@ -147,6 +153,7 @@ class IRISDialect_intersystems(IRISDialect):
|
|
147
153
|
with connection.cursor() as cursor:
|
148
154
|
cursor.execute("SET TRANSACTION ISOLATION LEVEL " + level_str)
|
149
155
|
|
156
|
+
"""
|
150
157
|
@remap_exception
|
151
158
|
def do_execute(self, cursor, query, params, context=None):
|
152
159
|
if query.endswith(";"):
|
@@ -163,5 +170,6 @@ class IRISDialect_intersystems(IRISDialect):
|
|
163
170
|
params = [param[0] if len(param) else None for param in params]
|
164
171
|
cursor.executemany(query, params)
|
165
172
|
|
173
|
+
"""
|
166
174
|
|
167
175
|
dialect = IRISDialect_intersystems
|
@@ -960,8 +960,8 @@ class Requirements(SuiteRequirements, AlembicRequirements):
|
|
960
960
|
literal string, e.g. via the TypeEngine.literal_processor() method.
|
961
961
|
|
962
962
|
"""
|
963
|
-
|
964
|
-
return
|
963
|
+
# works stable only on Community driver
|
964
|
+
return self.community_driver
|
965
965
|
|
966
966
|
@property
|
967
967
|
def datetime(self):
|
@@ -84,7 +84,6 @@ sqlalchemy_iris.egg-info/entry_points.txt
|
|
84
84
|
sqlalchemy_iris.egg-info/requires.txt
|
85
85
|
sqlalchemy_iris.egg-info/top_level.txt
|
86
86
|
sqlalchemy_iris/intersystems/__init__.py
|
87
|
-
sqlalchemy_iris/intersystems/cursor.py
|
88
87
|
sqlalchemy_iris/intersystems/dbapi.py
|
89
88
|
tests/test_alembic.py
|
90
89
|
tests/test_suite.py
|
@@ -93,14 +93,18 @@ else:
|
|
93
93
|
@classmethod
|
94
94
|
def insert_data(cls, connection):
|
95
95
|
connection.execute(
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
96
|
+
cls.tables.tab.insert(),
|
97
|
+
[
|
98
|
+
{
|
99
|
+
"col": "some data 1",
|
100
|
+
},
|
101
|
+
{
|
102
|
+
"col": "some data 2",
|
103
|
+
},
|
104
|
+
{
|
105
|
+
"col": "some data 3",
|
106
|
+
},
|
107
|
+
],
|
104
108
|
)
|
105
109
|
|
106
110
|
def test_str_to_blob(self, connection, ops_context):
|
@@ -1,17 +0,0 @@
|
|
1
|
-
from typing import Any
|
2
|
-
from sqlalchemy import CursorResult
|
3
|
-
from sqlalchemy.engine.cursor import CursorFetchStrategy
|
4
|
-
from sqlalchemy.engine.interfaces import DBAPICursor
|
5
|
-
|
6
|
-
|
7
|
-
class InterSystemsCursorFetchStrategy(CursorFetchStrategy):
|
8
|
-
|
9
|
-
def fetchone(
|
10
|
-
self,
|
11
|
-
result: CursorResult[Any],
|
12
|
-
dbapi_cursor: DBAPICursor,
|
13
|
-
hard_close: bool = False,
|
14
|
-
) -> Any:
|
15
|
-
row = dbapi_cursor.fetchone()
|
16
|
-
return tuple(row) if row else None
|
17
|
-
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_ConnectionInformation.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_ConnectionParameters.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_GatewayException.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_IRISGlobalNodeView.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/_SharedMemorySocket.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_Descriptor.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_IRISStream.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/_ResultSetRow.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/preparser/_Scanner.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/preparser/_Token.py
RENAMED
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/dbapi/preparser/__init__.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_BusinessHost.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_BusinessOperation.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_BusinessProcess.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_BusinessService.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_IRISBusinessService.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_IRISInboundAdapter.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_IRISOutboundAdapter.py
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_InboundAdapter.py
RENAMED
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/intersystems_iris/pex/_OutboundAdapter.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris.egg-info/dependency_links.txt
RENAMED
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris.egg-info/entry_points.txt
RENAMED
File without changes
|
File without changes
|
{sqlalchemy_iris-0.17.1b2 → sqlalchemy_iris-0.17.1b4}/sqlalchemy_iris.egg-info/top_level.txt
RENAMED
File without changes
|