Merge pull request #49844 from MikhailBurdukov/in_with_tuple

TYPE_MISMATCH exception for in operator with  single column tuples.
This commit is contained in:
Alexey Milovidov 2023-05-13 04:21:12 +03:00 committed by GitHub
commit a2d1cc1333
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 1 deletions

View File

@ -1183,7 +1183,7 @@ bool KeyCondition::tryPrepareSetIndex(
/// Note: in case of ActionsDAG, tuple may be a constant.
/// In this case, there is no keys in tuple. So, we don't have to check it.
auto left_arg_tuple = left_arg.toFunctionNode();
if (left_arg_tuple.getFunctionName() == "tuple")
if (left_arg_tuple.getFunctionName() == "tuple" && left_arg_tuple.getArgumentsSize() > 1)
{
left_args_count = left_arg_tuple.getArgumentsSize();
for (size_t i = 0; i < left_args_count; ++i)

View File

@ -0,0 +1,2 @@
2023-04-17 1
2023-04-17 1

View File

@ -0,0 +1,10 @@
CREATE TABLE test(`report_date` Date, `sspid` UInt64) ENGINE MergeTree PARTITION BY report_date ORDER BY report_date;
INSERT INTO test SELECT toDate('2023-04-20'), 0;
INSERT INTO test SELECT toDate('2023-04-19'), 0;
INSERT INTO test SELECT toDate('2023-04-17'), 1;
INSERT INTO test SELECT toDate('2023-04-17'), 1;
SELECT * FROM test WHERE tuple(report_date) IN tuple(toDate('2023-04-17'));
DROP TABLE test;