ClickHouse/dbms/include/DB/Core/BlockInfo.h
Alexey Milovidov 8b3afeb60d Squashed commit of the following:
commit f968e7e7f0d84c89fd26dea1d541bd9f6041d7c8
Author: Alexey Milovidov <milovidov@yandex-team.ru>
Date:   Tue Feb 16 06:11:29 2016 +0300

    Addition [#METR-2944].

commit 7524981fa7c4f22929dd5009444a0ae28500f620
Author: Alexey Milovidov <milovidov@yandex-team.ru>
Date:   Tue Feb 16 06:08:43 2016 +0300

    Fixed error (incomplete) [#METR-2944].

commit 2f1e7bf9f46cd9ce958ade9041c00ce067940fd2
Author: Alexey Milovidov <milovidov@yandex-team.ru>
Date:   Tue Feb 16 05:37:43 2016 +0300

    Improving performance of row formats [#METR-2944].

commit 9848910f235863c9571ef1ebe0d87d4929ee283c
Author: Alexey Milovidov <milovidov@yandex-team.ru>
Date:   Tue Feb 16 00:37:12 2016 +0300

    Improving performance of text formats [#METR-2944].

commit 3aedc7fd784af962e64ffdd10ec23ac53827d8e2
Author: Alexey Milovidov <milovidov@yandex-team.ru>
Date:   Tue Feb 16 00:18:00 2016 +0300

    Improving performance of row formats [#METR-2944].

commit cb5932c2b0385604477e69c8262dc31a4bb4b23b
Author: Alexey Milovidov <milovidov@yandex-team.ru>
Date:   Mon Feb 15 00:53:27 2016 +0300

    Fixed error.

commit 42863fd4eddeef594e846c598b92877b6ff86fa6
Author: Alexey Milovidov <milovidov@yandex-team.ru>
Date:   Sun Feb 14 23:13:46 2016 +0300

    Improving performance of row formats [#METR-2944].

commit 71c6fb19a85a79297433ceb486fdb97e551d964f
Author: Alexey Milovidov <milovidov@yandex-team.ru>
Date:   Sun Feb 14 16:58:56 2016 +0300

    Improving performance of row formats [#METR-2944].
2016-02-16 19:39:39 +03:00

47 lines
1.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <DB/Core/Types.h>
namespace DB
{
class ReadBuffer;
class WriteBuffer;
/** Дополнительная информация о блоке.
*/
struct BlockInfo
{
/** is_overflows:
* После выполнения GROUP BY ... WITH TOTALS с настройками max_rows_to_group_by и group_by_overflow_mode = 'any',
* в отдельный блок засовывается строчка с аргегированными значениями, не прошедшими max_rows_to_group_by.
* Если это такой блок, то для него is_overflows выставляется в true.
*/
/** bucket_num:
* При использовании двухуровневого метода агрегации, данные с разными группами ключей раскидываются по разным корзинам.
* В таком случае здесь указывается номер корзины. Он используется для оптимизации слияния при распределённой аргегации.
* Иначе - -1.
*/
#define APPLY_FOR_BLOCK_INFO_FIELDS(M) \
M(bool, is_overflows, false, 1) \
M(Int32, bucket_num, -1, 2)
#define DECLARE_FIELD(TYPE, NAME, DEFAULT, FIELD_NUM) \
TYPE NAME = DEFAULT;
APPLY_FOR_BLOCK_INFO_FIELDS(DECLARE_FIELD)
#undef DECLARE_FIELD
/// Записать значения в бинарном виде. NOTE: Можно было бы использовать protobuf, но он был бы overkill для данного случая.
void write(WriteBuffer & out) const;
/// Прочитать значения в бинарном виде.
void read(ReadBuffer & in);
};
}