Fix tupleElement with Null arguments

This commit is contained in:
flynn 2023-02-02 08:48:13 +00:00
parent 5f4726eb2a
commit 8513e5a721
3 changed files with 24 additions and 4 deletions

View File

@ -56,10 +56,9 @@ public:
return true; return true;
} }
ColumnNumbers getArgumentsThatAreAlwaysConstant() const override ColumnNumbers getArgumentsThatAreAlwaysConstant() const override { return {1}; }
{
return {1}; bool useDefaultImplementationForNulls() const override { return false; }
}
bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return false; } bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return false; }

View File

@ -0,0 +1,2 @@
1 1 2 2
\N \N 3 3

View File

@ -0,0 +1,19 @@
DROP TABLE IF EXISTS test_tuple_element;
CREATE TABLE test_tuple_element
(
tuple Tuple(k1 Nullable(UInt64), k2 UInt64)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192;
INSERT INTO test_tuple_element VALUES (tuple(1,2)), (tuple(NULL, 3));
SELECT
tupleElement(tuple, 'k1', 0) fine_k1_with_0,
tupleElement(tuple, 'k1', NULL) k1_with_null,
tupleElement(tuple, 'k2', 0) k2_with_0,
tupleElement(tuple, 'k2', NULL) k2_with_null
FROM test_tuple_element;
DROP TABLE test_tuple_element;