summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/default.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
-rw-r--r--lib/sqlalchemy/engine/default.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index 9d2eaf606..ff29c3b9d 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -144,6 +144,8 @@ class DefaultDialect(interfaces.Dialect):
supports_server_side_cursors = False
+ server_side_cursors = False
+
# extra record-level locking features (#4860)
supports_for_update_of = False
@@ -235,6 +237,14 @@ class DefaultDialect(interfaces.Dialect):
"Applications should work with result column names in a case "
"sensitive fashion.",
),
+ server_side_cursors=(
+ "1.4",
+ "The :paramref:`_sa.create_engine.server_side_cursors` parameter "
+ "is deprecated and will be removed in a future release. Please "
+ "use the "
+ ":paramref:`_engine.Connection.execution_options.stream_results` "
+ "parameter.",
+ ),
)
def __init__(
self,
@@ -250,6 +260,7 @@ class DefaultDialect(interfaces.Dialect):
# int() is because the @deprecated_params decorator cannot accommodate
# the direct reference to the "NO_LINTING" object
compiler_linting=int(compiler.NO_LINTING),
+ server_side_cursors=False,
**kwargs
):
@@ -259,6 +270,14 @@ class DefaultDialect(interfaces.Dialect):
% self.name
)
+ if server_side_cursors:
+ if not self.supports_server_side_cursors:
+ raise exc.ArgumentError(
+ "Dialect %s does not support server side cursors" % self
+ )
+ else:
+ self.server_side_cursors = True
+
self.convert_unicode = convert_unicode
self.encoding = encoding
self.positional = False
@@ -1189,6 +1208,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
return False
if self.dialect.server_side_cursors:
+ # this is deprecated
use_server_side = self.execution_options.get(
"stream_results", True
) and (
@@ -1232,7 +1252,10 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
return self.create_server_side_cursor()
else:
self._is_server_side = False
- return self._dbapi_connection.cursor()
+ return self.create_default_cursor()
+
+ def create_default_cursor(self):
+ return self._dbapi_connection.cursor()
def create_server_side_cursor(self):
raise NotImplementedError()