mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
dbms: fix test reference and bring commentaries up-to-date [#METR-15913].
This commit is contained in:
parent
2161eb4c0c
commit
226b11b887
@ -63,13 +63,13 @@ private:
|
||||
Names column_names_to_sum; /// Если задано - преобразуется в column_numbers_to_sum при инициализации.
|
||||
ColumnNumbers column_numbers_to_sum;
|
||||
|
||||
/** Таблица может вложенные таблицы, обрабатываемые особым образом.
|
||||
* Если название вложенной таблицы заканчинвается на `Map` и она содержит ровно два столбца,
|
||||
/** Таблица может иметь вложенные таблицы, обрабатываемые особым образом.
|
||||
* Если название вложенной таблицы заканчинвается на `Map` и она содержит не менее двух столбцов,
|
||||
* удовлетворяющих следующим критериям:
|
||||
* - первый столбец - числовой ((U)IntN, Date, DateTime), назовем его условно key,
|
||||
* - второй столбец - арифметический ((U)IntN, Float32/64), условно value.
|
||||
* Такая вложенная таблица воспринимается как отображение key => value и при слиянии
|
||||
* ее строк выполняется слияние элементов двух множеств по key со сложением по value.
|
||||
* - остальные столбцы - арифметические ((U)IntN, Float32/64), условно (values...).
|
||||
* Такая вложенная таблица воспринимается как отображение key => (values...) и при слиянии
|
||||
* ее строк выполняется слияние элементов двух множеств по key со сложением соответствующих (values...).
|
||||
* Пример:
|
||||
* [(1, 100)] + [(2, 150)] -> [(1, 100), (2, 150)]
|
||||
* [(1, 100)] + [(1, 150)] -> [(1, 250)]
|
||||
@ -77,7 +77,7 @@ private:
|
||||
* [(1, 100), (2, 150)] + [(1, -100)] -> [(2, 150)]
|
||||
*/
|
||||
|
||||
/// Хранит номера столбца-ключа и столбца-значения
|
||||
/// Хранит номера столбца-ключа и столбцов-значений
|
||||
struct map_description
|
||||
{
|
||||
std::size_t key_col_num;
|
||||
|
@ -98,11 +98,11 @@ Block SummingSortedBlockInputStream::readImpl()
|
||||
/// select actual nested Maps from list of candidates
|
||||
for (const auto & map : discovered_maps)
|
||||
{
|
||||
/// map can only contain a pair of elements (key -> value)
|
||||
/// map should contain at least two elements (key -> value)
|
||||
if (map.second.size() < 2)
|
||||
continue;
|
||||
|
||||
/// check types of key and value
|
||||
/// check type of key
|
||||
const auto key_num = map.second.front();
|
||||
auto & key_col = merged_block.getByPosition(key_num);
|
||||
/// skip maps, whose members are part of primary key
|
||||
|
@ -0,0 +1,7 @@
|
||||
0 [1,2] [100,150] [1,-2.5]
|
||||
1 [1] [250] [0]
|
||||
2 [1,2] [250,150] [3.5,3.5]
|
||||
3 [2] [150] [1.5]
|
||||
0 [1] [1] ['2015-04-09'] [1] [100]
|
||||
0 [1] [1] ['2015-04-08'] [1] [200]
|
||||
0 [1] [1] ['2015-04-09'] [1] [100]
|
Loading…
Reference in New Issue
Block a user