summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2020-05-01 23:19:32 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2020-05-01 23:19:32 +0000
commitea87d39d7a9926dc1c6bf3d70e8faf8575769cb0 (patch)
treeee11512a1dd3bcb48aa2f1234881bd3e04f51ed1 /lib/sqlalchemy/dialects
parent31898e90618e946aca3eef2914b03e8534c464aa (diff)
parentaded39f68c29e44a50c85be1ddb370d3d1affe9d (diff)
downloadsqlalchemy-ea87d39d7a9926dc1c6bf3d70e8faf8575769cb0.tar.gz
Merge "Propose Result as immediate replacement for ResultProxy"
Diffstat (limited to 'lib/sqlalchemy/dialects')
-rw-r--r--lib/sqlalchemy/dialects/mssql/base.py4
-rw-r--r--lib/sqlalchemy/dialects/oracle/cx_oracle.py31
2 files changed, 10 insertions, 25 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py
index dda445743..5618a67f9 100644
--- a/lib/sqlalchemy/dialects/mssql/base.py
+++ b/lib/sqlalchemy/dialects/mssql/base.py
@@ -704,9 +704,9 @@ from ... import schema as sa_schema
from ... import sql
from ... import types as sqltypes
from ... import util
+from ...engine import cursor as _cursor
from ...engine import default
from ...engine import reflection
-from ...engine import result as _result
from ...sql import compiler
from ...sql import elements
from ...sql import expression
@@ -1525,7 +1525,7 @@ class MSExecutionContext(default.DefaultExecutionContext):
elif (
self.isinsert or self.isupdate or self.isdelete
) and self.compiled.returning:
- fbcr = _result.FullyBufferedCursorFetchStrategy
+ fbcr = _cursor.FullyBufferedCursorFetchStrategy
self._result_strategy = fbcr.create_from_buffer(
self.cursor, self.cursor.description, self.cursor.fetchall()
)
diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py
index b555c4555..9e10679c6 100644
--- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py
+++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py
@@ -299,7 +299,6 @@ SQLAlchemy type (or a subclass of such).
from __future__ import absolute_import
-import collections
import decimal
import random
import re
@@ -312,7 +311,7 @@ from ... import exc
from ... import processors
from ... import types as sqltypes
from ... import util
-from ...engine import result as _result
+from ...engine import cursor as _cursor
from ...util import compat
@@ -680,8 +679,13 @@ class OracleExecutionContext_cx_oracle(OracleExecutionContext):
for i in range(len(self.out_parameters))
]
- return ReturningResultStrategy(
- result, result.cursor, returning_params
+ return _cursor.FullyBufferedCursorFetchStrategy(
+ result.cursor,
+ [
+ (getattr(col, "name", col.anon_label), None)
+ for col in result.context.compiled.returning
+ ],
+ initial_buffer=[tuple(returning_params)],
)
else:
return super(
@@ -689,25 +693,6 @@ class OracleExecutionContext_cx_oracle(OracleExecutionContext):
).get_result_cursor_strategy(result)
-class ReturningResultStrategy(_result.FullyBufferedCursorFetchStrategy):
- __slots__ = ("_returning_params",)
-
- def __init__(self, result, dbapi_cursor, returning_params):
- self._returning_params = returning_params
-
- returning = result.context.compiled.returning
- cursor_description = [
- (getattr(col, "name", col.anon_label), None) for col in returning
- ]
-
- super(ReturningResultStrategy, self).__init__(
- dbapi_cursor, cursor_description
- )
-
- def _buffer_rows(self):
- return collections.deque([tuple(self._returning_params)])
-
-
class OracleDialect_cx_oracle(OracleDialect):
execution_ctx_cls = OracleExecutionContext_cx_oracle
statement_compiler = OracleCompiler_cx_oracle