From b17fa2513e412b8f9aa1f62c0acc7fa3805e632b Mon Sep 17 00:00:00 2001 From: Nicolas Rolin Date: Fri, 25 May 2018 13:27:22 -0400 Subject: Add support of empty list in exanding of bindparam Added new logic to the "expanding IN" bound parameter feature whereby if the given list is empty, a special "empty set" expression that is specific to different backends is generated, thus allowing IN expressions to be fully dynamic including empty IN expressions. Fixes: #4271 Change-Id: Icc3c73bbd6005206b9d06baaeb14a097af5edd36 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/432 --- lib/sqlalchemy/dialects/sqlite/base.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/sqlalchemy/dialects/sqlite/base.py') diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index cc17b6c9b..345ad901e 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -870,6 +870,9 @@ class SQLiteCompiler(compiler.SQLCompiler): self.process(binary.left, **kw), self.process(binary.right, **kw)) + def visit_empty_set_expr(self, type_): + return 'SELECT 1 FROM (SELECT 1) WHERE 1!=1' + class SQLiteDDLCompiler(compiler.DDLCompiler): -- cgit v1.2.1