mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 00:52: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 при инициализации.
|
Names column_names_to_sum; /// Если задано - преобразуется в column_numbers_to_sum при инициализации.
|
||||||
ColumnNumbers column_numbers_to_sum;
|
ColumnNumbers column_numbers_to_sum;
|
||||||
|
|
||||||
/** Таблица может вложенные таблицы, обрабатываемые особым образом.
|
/** Таблица может иметь вложенные таблицы, обрабатываемые особым образом.
|
||||||
* Если название вложенной таблицы заканчинвается на `Map` и она содержит ровно два столбца,
|
* Если название вложенной таблицы заканчинвается на `Map` и она содержит не менее двух столбцов,
|
||||||
* удовлетворяющих следующим критериям:
|
* удовлетворяющих следующим критериям:
|
||||||
* - первый столбец - числовой ((U)IntN, Date, DateTime), назовем его условно key,
|
* - первый столбец - числовой ((U)IntN, Date, DateTime), назовем его условно key,
|
||||||
* - второй столбец - арифметический ((U)IntN, Float32/64), условно value.
|
* - остальные столбцы - арифметические ((U)IntN, Float32/64), условно (values...).
|
||||||
* Такая вложенная таблица воспринимается как отображение key => value и при слиянии
|
* Такая вложенная таблица воспринимается как отображение key => (values...) и при слиянии
|
||||||
* ее строк выполняется слияние элементов двух множеств по key со сложением по value.
|
* ее строк выполняется слияние элементов двух множеств по key со сложением соответствующих (values...).
|
||||||
* Пример:
|
* Пример:
|
||||||
* [(1, 100)] + [(2, 150)] -> [(1, 100), (2, 150)]
|
* [(1, 100)] + [(2, 150)] -> [(1, 100), (2, 150)]
|
||||||
* [(1, 100)] + [(1, 150)] -> [(1, 250)]
|
* [(1, 100)] + [(1, 150)] -> [(1, 250)]
|
||||||
@ -77,7 +77,7 @@ private:
|
|||||||
* [(1, 100), (2, 150)] + [(1, -100)] -> [(2, 150)]
|
* [(1, 100), (2, 150)] + [(1, -100)] -> [(2, 150)]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/// Хранит номера столбца-ключа и столбца-значения
|
/// Хранит номера столбца-ключа и столбцов-значений
|
||||||
struct map_description
|
struct map_description
|
||||||
{
|
{
|
||||||
std::size_t key_col_num;
|
std::size_t key_col_num;
|
||||||
|
@ -98,11 +98,11 @@ Block SummingSortedBlockInputStream::readImpl()
|
|||||||
/// select actual nested Maps from list of candidates
|
/// select actual nested Maps from list of candidates
|
||||||
for (const auto & map : discovered_maps)
|
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)
|
if (map.second.size() < 2)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/// check types of key and value
|
/// check type of key
|
||||||
const auto key_num = map.second.front();
|
const auto key_num = map.second.front();
|
||||||
auto & key_col = merged_block.getByPosition(key_num);
|
auto & key_col = merged_block.getByPosition(key_num);
|
||||||
/// skip maps, whose members are part of primary key
|
/// 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