From: Mike Bayer Date: Fri, 2 Oct 2020 12:15:41 +0000 (-0400) Subject: accommodate for null in sqlite regex handler X-Git-Tag: rel_1_4_0b1~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a9618afdd6413fd04ee44b797a15735eaa1a230;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git accommodate for null in sqlite regex handler Fixes: #5624 Change-Id: Ic20dcde0a1e96b9981c63cac3cd34c7fdc7bd395 --- diff --git a/lib/sqlalchemy/dialects/sqlite/pysqlite.py b/lib/sqlalchemy/dialects/sqlite/pysqlite.py index eb855016ec..377411520a 100644 --- a/lib/sqlalchemy/dialects/sqlite/pysqlite.py +++ b/lib/sqlalchemy/dialects/sqlite/pysqlite.py @@ -506,6 +506,8 @@ class SQLiteDialect_pysqlite(SQLiteDialect): connect = super(SQLiteDialect_pysqlite, self).on_connect() def regexp(a, b): + if b is None: + return None return bool(re.match(a, b)) def set_regexp(connection): @@ -513,7 +515,6 @@ class SQLiteDialect_pysqlite(SQLiteDialect): dbapi_connection = connection.connection else: dbapi_connection = connection - dbapi_connection.create_function( "regexp", 2, diff --git a/lib/sqlalchemy/testing/suite/test_select.py b/lib/sqlalchemy/testing/suite/test_select.py index 224826c257..a2924bfde1 100644 --- a/lib/sqlalchemy/testing/suite/test_select.py +++ b/lib/sqlalchemy/testing/suite/test_select.py @@ -894,6 +894,7 @@ class LikeFunctionsTest(fixtures.TablesTest): {"id": 8, "data": "ab9cdefg"}, {"id": 9, "data": "abcde#fg"}, {"id": 10, "data": "abcd9fg"}, + {"id": 11, "data": None}, ], )