minor fixes

This commit is contained in:
Anton Popov 2021-03-16 02:28:11 +03:00
parent 68b3cbbfe9
commit ecd9220c77
3 changed files with 7 additions and 7 deletions

View File

@ -872,18 +872,18 @@ bool FunctionArrayElement::matchKeyToIndexNumberConst(
if (!data_numeric) if (!data_numeric)
return false; return false;
std::optional<DataType> index_value; std::optional<DataType> index_as_integer;
Field::dispatch([&index_value](const auto & value) Field::dispatch([&](const auto & value)
{ {
using FieldType = std::decay_t<decltype(value)>; using FieldType = std::decay_t<decltype(value)>;
if constexpr (is_integer_v<FieldType> && std::is_convertible_v<FieldType, DataType>) if constexpr (is_integer_v<FieldType> && std::is_convertible_v<FieldType, DataType>)
index_value = static_cast<DataType>(value); index_as_integer = static_cast<DataType>(value);
}, index); }, index);
if (!index_value) if (!index_as_integer)
return false; return false;
MatcherNumberConst<DataType> matcher{data_numeric->getData(), *index_value}; MatcherNumberConst<DataType> matcher{data_numeric->getData(), *index_as_integer};
executeMatchKeyToIndex(offsets, matched_idxs, matcher); executeMatchKeyToIndex(offsets, matched_idxs, matcher);
return true; return true;
} }

View File

@ -31,7 +31,7 @@ Map(Date, Int32)
Map(UUID, UInt16) Map(UUID, UInt16)
{'00001192-0000-4000-8000-000000000001':1,'00001192-0000-4000-7000-000000000001':2} {'00001192-0000-4000-8000-000000000001':1,'00001192-0000-4000-7000-000000000001':2}
0 2 1 0 2 1
Map(Int128, Int32) Map(Int128, String)
{-1:'a',0:'b',1234567898765432193024000:'c',-1234567898765432193024000:'d'} {-1:'a',0:'b',1234567898765432193024000:'c',-1234567898765432193024000:'d'}
a b c d a b c d

View File

@ -67,7 +67,7 @@ ENGINE = MergeTree() ORDER BY d;
INSERT INTO table_map_with_key_integer SELECT '2020-01-01', map(-1, 'a', 0, 'b', toInt128(1234567898765432123456789), 'c', toInt128(-1234567898765432123456789), 'd'); INSERT INTO table_map_with_key_integer SELECT '2020-01-01', map(-1, 'a', 0, 'b', toInt128(1234567898765432123456789), 'c', toInt128(-1234567898765432123456789), 'd');
SELECT 'Map(Int128, Int32)'; SELECT 'Map(Int128, String)';
SELECT m FROM table_map_with_key_integer; SELECT m FROM table_map_with_key_integer;
SELECT m[toInt128(-1)], m[toInt128(0)], m[toInt128(1234567898765432123456789)], m[toInt128(-1234567898765432123456789)] FROM table_map_with_key_integer; SELECT m[toInt128(-1)], m[toInt128(0)], m[toInt128(1234567898765432123456789)], m[toInt128(-1234567898765432123456789)] FROM table_map_with_key_integer;