diff options
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/oracle/base.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/sqlite/base.py | 7 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/sqlite/pysqlite.py | 18 |
4 files changed, 25 insertions, 4 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index fe0624d08..50bae40b8 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -2327,6 +2327,8 @@ class MySQLDialect(default.DefaultDialect): max_index_name_length = 64 max_constraint_name_length = 64 + div_is_floordiv = False + supports_native_enum = True supports_sequences = False # default for MySQL ... diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index 63131bf95..94feeefce 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -1441,6 +1441,8 @@ class OracleDialect(default.DefaultDialect): implicit_returning = True + div_is_floordiv = False + supports_simple_order_by_label = False cte_follows_insert = True diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index 43883c4b7..d238de1ab 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -1215,6 +1215,13 @@ class SQLiteCompiler(compiler.SQLCompiler): }, ) + def visit_truediv_binary(self, binary, operator, **kw): + return ( + self.process(binary.left, **kw) + + " / " + + "(%s + 0.0)" % self.process(binary.right, **kw) + ) + def visit_now_func(self, fn, **kw): return "CURRENT_TIMESTAMP" diff --git a/lib/sqlalchemy/dialects/sqlite/pysqlite.py b/lib/sqlalchemy/dialects/sqlite/pysqlite.py index 944d714a3..77c9ebce7 100644 --- a/lib/sqlalchemy/dialects/sqlite/pysqlite.py +++ b/lib/sqlalchemy/dialects/sqlite/pysqlite.py @@ -402,6 +402,7 @@ by adding the desired locking mode to our ``"BEGIN"``:: """ # noqa +import math import os import re @@ -505,14 +506,23 @@ class SQLiteDialect_pysqlite(SQLiteDialect): return None return re.search(a, b) is not None + create_func_kw = {"deterministic": True} if util.py38 else {} + def set_regexp(dbapi_connection): dbapi_connection.create_function( - "regexp", - 2, - regexp, + "regexp", 2, regexp, **create_func_kw + ) + + def floor_func(dbapi_connection): + # NOTE: floor is optionally present in sqlite 3.35+ , however + # as it is normally non-present we deliver floor() unconditionally + # for now. + # https://www.sqlite.org/lang_mathfunc.html + dbapi_connection.create_function( + "floor", 1, math.floor, **create_func_kw ) - fns = [set_regexp] + fns = [set_regexp, floor_func] def connect(conn): for fn in fns: |
