diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2020-05-01 23:19:32 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2020-05-01 23:19:32 +0000 |
| commit | ea87d39d7a9926dc1c6bf3d70e8faf8575769cb0 (patch) | |
| tree | ee11512a1dd3bcb48aa2f1234881bd3e04f51ed1 /lib/sqlalchemy/dialects | |
| parent | 31898e90618e946aca3eef2914b03e8534c464aa (diff) | |
| parent | aded39f68c29e44a50c85be1ddb370d3d1affe9d (diff) | |
| download | sqlalchemy-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.py | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/oracle/cx_oracle.py | 31 |
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 |
