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.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index 7391e7b01..5193a0273 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -44,6 +44,7 @@ CACHE_HIT = util.symbol("CACHE_HIT")
CACHE_MISS = util.symbol("CACHE_MISS")
CACHING_DISABLED = util.symbol("CACHING_DISABLED")
NO_CACHE_KEY = util.symbol("NO_CACHE_KEY")
+NO_DIALECT_SUPPORT = util.symbol("NO_DIALECT_SUPPORT")
class DefaultDialect(interfaces.Dialect):
@@ -57,6 +58,7 @@ class DefaultDialect(interfaces.Dialect):
supports_comments = False
inline_comments = False
use_setinputsizes = False
+ supports_statement_cache = True
# the first value we'd get for an autoincrement
# column.
@@ -215,6 +217,7 @@ class DefaultDialect(interfaces.Dialect):
CACHE_MISS = CACHE_MISS
CACHING_DISABLED = CACHING_DISABLED
NO_CACHE_KEY = NO_CACHE_KEY
+ NO_DIALECT_SUPPORT = NO_DIALECT_SUPPORT
@util.deprecated_params(
convert_unicode=(
@@ -320,6 +323,13 @@ class DefaultDialect(interfaces.Dialect):
self._decoder = processors.to_unicode_processor_factory(self.encoding)
@util.memoized_property
+ def _supports_statement_cache(self):
+ return (
+ self.__class__.__dict__.get("supports_statement_cache", False)
+ is True
+ )
+
+ @util.memoized_property
def _type_memos(self):
return weakref.WeakKeyDictionary()
@@ -771,6 +781,8 @@ class StrCompileDialect(DefaultDialect):
type_compiler = compiler.StrSQLTypeCompiler
preparer = compiler.IdentifierPreparer
+ supports_statement_cache = True
+
supports_sequences = True
sequences_optional = True
preexecute_autoincrement_sequences = False
@@ -1137,6 +1149,12 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
return "generated in %.5fs" % (now - self.compiled._gen_time,)
elif ch is CACHING_DISABLED:
return "caching disabled %.5fs" % (now - self.compiled._gen_time,)
+ elif ch is NO_DIALECT_SUPPORT:
+ return "dialect %s+%s does not support caching %.5fs" % (
+ self.dialect.name,
+ self.dialect.driver,
+ now - self.compiled._gen_time,
+ )
else:
return "unknown"