diff options
Diffstat (limited to 'lib/sqlalchemy/ext/asyncio/session.py')
-rw-r--r-- | lib/sqlalchemy/ext/asyncio/session.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/sqlalchemy/ext/asyncio/session.py b/lib/sqlalchemy/ext/asyncio/session.py index a10621eef..5c6e7f5a7 100644 --- a/lib/sqlalchemy/ext/asyncio/session.py +++ b/lib/sqlalchemy/ext/asyncio/session.py @@ -14,6 +14,9 @@ from ...orm import Session from ...orm import state as _instance_state from ...util.concurrency import greenlet_spawn +_EXECUTE_OPTIONS = util.immutabledict({"prebuffer_rows": True}) +_STREAM_OPTIONS = util.immutabledict({"stream_results": True}) + @util.create_proxy_methods( Session, @@ -140,7 +143,12 @@ class AsyncSession(ReversibleProxy): """Execute a statement and return a buffered :class:`_engine.Result` object.""" - execution_options = execution_options.union({"prebuffer_rows": True}) + if execution_options: + execution_options = util.immutabledict(execution_options).union( + _EXECUTE_OPTIONS + ) + else: + execution_options = _EXECUTE_OPTIONS return await greenlet_spawn( self.sync_session.execute, @@ -205,7 +213,12 @@ class AsyncSession(ReversibleProxy): """Execute a statement and return a streaming :class:`_asyncio.AsyncResult` object.""" - execution_options = execution_options.union({"stream_results": True}) + if execution_options: + execution_options = util.immutabledict(execution_options).union( + _STREAM_OPTIONS + ) + else: + execution_options = _STREAM_OPTIONS result = await greenlet_spawn( self.sync_session.execute, |