summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
authorFederico Caselli <cfederico87@gmail.com>2021-04-16 22:07:34 +0200
committerFederico Caselli <cfederico87@gmail.com>2021-04-16 22:28:16 +0200
commit91562f56185e1e69676712ccb109865a6622a538 (patch)
treef901b04f7e1a569936f827122ad4222edcd19dd3 /lib/sqlalchemy/sql/compiler.py
parentb73fc8f874da94c9c5b2d94feb6b1b45b7f4f02b (diff)
downloadsqlalchemy-91562f56185e1e69676712ccb109865a6622a538.tar.gz
Fit literal compile of empty in on a tuple
Fixed regression where an empty in statement on a tuple would result in an error when compiled with the option ``literal_binds=True``. Fixes: #6290 Change-Id: Ic0dff8f4a874cccdb201b6d9dcd3c2e7b7884cbb
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r--lib/sqlalchemy/sql/compiler.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index 0c701cb52..a466216e3 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -1914,10 +1914,14 @@ class SQLCompiler(Compiled):
):
if not values:
- assert not parameter.type._is_tuple_type
- replacement_expression = self.visit_empty_set_expr(
- [parameter.type]
- )
+ if parameter.type._is_tuple_type:
+ replacement_expression = (
+ "VALUES " if self.dialect.tuple_in_values else ""
+ ) + self.visit_empty_set_expr(parameter.type.types)
+ else:
+ replacement_expression = self.visit_empty_set_expr(
+ [parameter.type]
+ )
elif isinstance(values[0], (tuple, list)):
assert parameter.type._is_tuple_type