diff options
author | Federico Caselli <cfederico87@gmail.com> | 2021-04-16 22:07:34 +0200 |
---|---|---|
committer | Federico Caselli <cfederico87@gmail.com> | 2021-04-16 22:28:16 +0200 |
commit | 91562f56185e1e69676712ccb109865a6622a538 (patch) | |
tree | f901b04f7e1a569936f827122ad4222edcd19dd3 /lib/sqlalchemy/sql/compiler.py | |
parent | b73fc8f874da94c9c5b2d94feb6b1b45b7f4f02b (diff) | |
download | sqlalchemy-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.py | 12 |
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 |