From b3e2ebbaa5900f50eba8515f8cff682c3eaff2a5 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Mon, 23 Nov 2020 08:19:38 +0300 Subject: [PATCH 001/101] Used global region for accessing S3 if can't determine exactly. --- src/IO/S3/PocoHTTPClient.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/IO/S3/PocoHTTPClient.cpp b/src/IO/S3/PocoHTTPClient.cpp index 4a5b79e31ea..b8b78a38985 100644 --- a/src/IO/S3/PocoHTTPClient.cpp +++ b/src/IO/S3/PocoHTTPClient.cpp @@ -71,6 +71,10 @@ void PocoHTTPClientConfiguration::updateSchemeAndRegion() boost::algorithm::to_lower(matched_region); region = matched_region; } + else + { + region = Aws::Region::AWS_GLOBAL; + } } } From ded199ce2768246467a001abff74ae2b3b547d95 Mon Sep 17 00:00:00 2001 From: Daria Mozhaeva Date: Wed, 23 Dec 2020 18:32:35 +0300 Subject: [PATCH 002/101] Edit and translate to Russia --- .../integrations/embedded-rocksdb.md | 2 +- docs/en/operations/settings/settings.md | 2 +- .../integrations/embedded-rocksdb.md | 45 +++++++++++++++++++ docs/ru/operations/settings/settings.md | 25 +++++++++++ 4 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 docs/ru/engines/table-engines/integrations/embedded-rocksdb.md diff --git a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md index 857e148277c..79e0e040377 100644 --- a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md @@ -40,6 +40,6 @@ PRIMARY KEY key ## Description {#description} -- `primary key` must be specified, it only supports one column in primary key. The primary key will serialized in binary as rocksdb key. +- `primary key` must be specified, it supports only one column in the primary key. The primary key will be serialized in binary as a rocksdb key. - columns other than the primary key will be serialized in binary as rocksdb value in corresponding order. - queries with key `equals` or `in` filtering will be optimized to multi keys lookup from rocksdb. diff --git a/docs/en/operations/settings/settings.md b/docs/en/operations/settings/settings.md index fc921f2ef7e..1ff2ea77fd0 100644 --- a/docs/en/operations/settings/settings.md +++ b/docs/en/operations/settings/settings.md @@ -445,7 +445,7 @@ Possible values: - `'simple'` - Simple output format. - Clickhouse output date and time `YYYY-MM-DD hh:mm:ss` format. For example, `'2019-08-20 10:18:56'`. Calculation is performed according to the data type's time zone (if present) or server time zone. + Clickhouse output date and time `YYYY-MM-DD hh:mm:ss` format. For example, `'2019-08-20 10:18:56'`. The calculation is performed according to the data type's time zone (if present) or server time zone. - `'iso'` - ISO output format. diff --git a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md new file mode 100644 index 00000000000..e160eb2bdf5 --- /dev/null +++ b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md @@ -0,0 +1,45 @@ +--- +toc_priority: 6 +toc_title: EmbeddedRocksDB +--- + +# EmbeddedRocksDB Engine {#EmbeddedRocksDB-engine} + +Этот движок позволяет интегрировать ClickHouse с [rocksdb](http://rocksdb.org/). + +`EmbeddedRocksDB` дает возможность: + +## Создавать таблицу {#table_engine-EmbeddedRocksDB-creating-a-table} + +``` sql +CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] +( + name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1], + name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2], + ... +) ENGINE = EmbeddedRocksDB PRIMARY KEY(primary_key_name) +``` + +Обязательные параметры: + +- `primary_key_name` – любое имя столбца в списке столбцов. + +Пример: + +``` sql +CREATE TABLE test +( + `key` String, + `v1` UInt32, + `v2` String, + `v3` Float32, +) +ENGINE = EmbeddedRocksDB +PRIMARY KEY key +``` + +## Описание {#description} + +- должен быть указан `primary key`, он поддерживает только один столбец в первичном ключе. Первичный ключ будет сериализован в двоичном формате как ключ rocksdb. +- столбцы, отличные от первичного ключа, будут сериализованы в двоичном формате как значение rockdb в соответствующем порядке. +- запросы с фильтрацией по ключу `equals` или `in` будут оптимизированы для поиска по нескольким ключам из rocksdb. diff --git a/docs/ru/operations/settings/settings.md b/docs/ru/operations/settings/settings.md index 0a8094231c2..82051a9f999 100644 --- a/docs/ru/operations/settings/settings.md +++ b/docs/ru/operations/settings/settings.md @@ -421,6 +421,31 @@ INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2; - [Тип данных DateTime.](../../sql-reference/data-types/datetime.md) - [Функции для работы с датой и временем.](../../sql-reference/functions/date-time-functions.md) +## date_time_output_format {#settings-date_time_output_format} + +Позволяет выбрать разные выходные форматы текстового представления даты и времени. + +Возможные значения: + +- `'simple'` - простой выходной формат. + + Выходные дата и время Clickhouse в формате `YYYY-MM-DD hh:mm:ss`. Например, `'2019-08-20 10:18:56'`. Расчет выполняется в соответствии с часовым поясом типа данных (если он есть) или часовым поясом сервера. + +- `'iso'` - выходной формат ISO. + + Выходные дата и время Clickhouse в формате [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) `YYYY-MM-DDThh:mm:ssZ`. Например, `'2019-08-20T10:18:56Z'`. Обратите внимание, что выходные данные отображаются в формате UTC (`Z` означает UTC). + +- `'unix_timestamp'` - выходной формат Unix. + + Выходные дата и время в формате [Unix](https://en.wikipedia.org/wiki/Unix_time). Например `'1566285536'`. + +Значение по умолчанию: `'simple'`. + +См. также: + +- [Тип данных DateTime.](../../sql-reference/data-types/datetime.md) +- [Функции для работы с датой и временем.](../../sql-reference/functions/date-time-functions.md) + ## join_default_strictness {#settings-join_default_strictness} Устанавливает строгость по умолчанию для [JOIN](../../sql-reference/statements/select/join.md#select-join). From 5c9fe8ff7e6c826bfbcb7fbb42a757ab33728afe Mon Sep 17 00:00:00 2001 From: Daria Mozhaeva Date: Wed, 23 Dec 2020 18:35:32 +0300 Subject: [PATCH 003/101] Edit and translate to Russian. --- docs/ru/sql-reference/data-types/datetime.md | 3 ++- docs/ru/sql-reference/data-types/datetime64.md | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/data-types/datetime.md b/docs/ru/sql-reference/data-types/datetime.md index 87c5da68f35..74cec551c3f 100644 --- a/docs/ru/sql-reference/data-types/datetime.md +++ b/docs/ru/sql-reference/data-types/datetime.md @@ -27,7 +27,7 @@ DateTime([timezone]) Консольный клиент ClickHouse по умолчанию использует часовой пояс сервера, если для значения `DateTime` часовой пояс не был задан в явном виде при инициализации типа данных. Чтобы использовать часовой пояс клиента, запустите [clickhouse-client](../../interfaces/cli.md) с параметром `--use_client_time_zone`. -ClickHouse отображает значения типа `DateTime` в формате `YYYY-MM-DD hh:mm:ss`. Отображение можно поменять с помощью функции [formatDateTime](../../sql-reference/data-types/datetime.md#formatdatetime). +ClickHouse отображает значения в зависимости от значения параметра [date\_time\_output\_format](../../operations/settings/settings.md#settings-date_time_output_format). Текстовый формат по умолчанию `YYYY-MM-DD hh:mm:ss`. Кроме того, вы можете поменять отображение с помощью функции [formatDateTime](../../sql-reference/functions/date-time-functions.md#formatdatetime). При вставке данных в ClickHouse, можно использовать различные форматы даты и времени в зависимости от значения настройки [date_time_input_format](../../operations/settings/settings.md#settings-date_time_input_format). @@ -120,6 +120,7 @@ FROM dt - [Функции для работы с датой и временем](../../sql-reference/data-types/datetime.md) - [Функции для работы с массивами](../../sql-reference/data-types/datetime.md) - [Настройка `date_time_input_format`](../../operations/settings/settings.md#settings-date_time_input_format) +- [Настройка `date_time_output_format`](../../operations/settings/settings.md#settings-date_time_output_format) - [Конфигурационный параметр сервера `timezone`](../../sql-reference/data-types/datetime.md#server_configuration_parameters-timezone) - [Операторы для работы с датой и временем](../../sql-reference/data-types/datetime.md#operators-datetime) - [Тип данных `Date`](date.md) diff --git a/docs/ru/sql-reference/data-types/datetime64.md b/docs/ru/sql-reference/data-types/datetime64.md index 0a602e44636..275783f0097 100644 --- a/docs/ru/sql-reference/data-types/datetime64.md +++ b/docs/ru/sql-reference/data-types/datetime64.md @@ -96,6 +96,7 @@ FROM dt - [Функции для работы с датой и временем](../../sql-reference/data-types/datetime64.md) - [Функции для работы с массивами](../../sql-reference/data-types/datetime64.md) - [Настройка `date_time_input_format`](../../operations/settings/settings.md#settings-date_time_input_format) +- [Настройка `date_time_output_format`](../../operations/settings/settings.md#settings-date_time_output_format) - [Конфигурационный параметр сервера `timezone`](../../sql-reference/data-types/datetime64.md#server_configuration_parameters-timezone) - [Операторы для работы с датой и временем](../../sql-reference/data-types/datetime64.md#operators-datetime) - [Тип данных `Date`](date.md) From 49631a39ae843426a87bd94baa2398b125838e3a Mon Sep 17 00:00:00 2001 From: damozhaeva <68770561+damozhaeva@users.noreply.github.com> Date: Fri, 25 Dec 2020 15:05:23 +0300 Subject: [PATCH 004/101] Update docs/ru/engines/table-engines/integrations/embedded-rocksdb.md Co-authored-by: Anna <42538400+adevyatova@users.noreply.github.com> --- docs/ru/engines/table-engines/integrations/embedded-rocksdb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md index e160eb2bdf5..2074021121a 100644 --- a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md @@ -9,7 +9,7 @@ toc_title: EmbeddedRocksDB `EmbeddedRocksDB` дает возможность: -## Создавать таблицу {#table_engine-EmbeddedRocksDB-creating-a-table} +## Создание таблицы {#table_engine-EmbeddedRocksDB-creating-a-table} ``` sql CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] From e00b0117410d7e024889e82f825757bf769b8a18 Mon Sep 17 00:00:00 2001 From: damozhaeva <68770561+damozhaeva@users.noreply.github.com> Date: Fri, 25 Dec 2020 15:05:52 +0300 Subject: [PATCH 005/101] Update docs/ru/operations/settings/settings.md Co-authored-by: Anna <42538400+adevyatova@users.noreply.github.com> --- docs/ru/operations/settings/settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/operations/settings/settings.md b/docs/ru/operations/settings/settings.md index 82051a9f999..2f940758e09 100644 --- a/docs/ru/operations/settings/settings.md +++ b/docs/ru/operations/settings/settings.md @@ -443,7 +443,7 @@ INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2; См. также: -- [Тип данных DateTime.](../../sql-reference/data-types/datetime.md) +- [Тип данных DateTime](../../sql-reference/data-types/datetime.md) - [Функции для работы с датой и временем.](../../sql-reference/functions/date-time-functions.md) ## join_default_strictness {#settings-join_default_strictness} From 5bc3d563d56bc837c28d177af7eb5066e4a24970 Mon Sep 17 00:00:00 2001 From: damozhaeva <68770561+damozhaeva@users.noreply.github.com> Date: Fri, 25 Dec 2020 15:06:54 +0300 Subject: [PATCH 006/101] Update docs/ru/operations/settings/settings.md Co-authored-by: Anna <42538400+adevyatova@users.noreply.github.com> --- docs/ru/operations/settings/settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/operations/settings/settings.md b/docs/ru/operations/settings/settings.md index 2f940758e09..b48ca668aa4 100644 --- a/docs/ru/operations/settings/settings.md +++ b/docs/ru/operations/settings/settings.md @@ -444,7 +444,7 @@ INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2; См. также: - [Тип данных DateTime](../../sql-reference/data-types/datetime.md) -- [Функции для работы с датой и временем.](../../sql-reference/functions/date-time-functions.md) +- [Функции для работы с датой и временем](../../sql-reference/functions/date-time-functions.md) ## join_default_strictness {#settings-join_default_strictness} From bc3e8f77f67ec0bd76533abefd0f4707185e82d6 Mon Sep 17 00:00:00 2001 From: damozhaeva <68770561+damozhaeva@users.noreply.github.com> Date: Fri, 25 Dec 2020 15:07:20 +0300 Subject: [PATCH 007/101] Update docs/ru/engines/table-engines/integrations/embedded-rocksdb.md Co-authored-by: Anna <42538400+adevyatova@users.noreply.github.com> --- docs/ru/engines/table-engines/integrations/embedded-rocksdb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md index 2074021121a..e57b83070dc 100644 --- a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md @@ -22,7 +22,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] Обязательные параметры: -- `primary_key_name` – любое имя столбца в списке столбцов. +- `primary_key_name` – любое имя столбца из списка столбцов. Пример: From 8088b17ae25a76ae10ea74ac01aaba172500b38a Mon Sep 17 00:00:00 2001 From: damozhaeva <68770561+damozhaeva@users.noreply.github.com> Date: Fri, 25 Dec 2020 15:08:22 +0300 Subject: [PATCH 008/101] Update docs/ru/engines/table-engines/integrations/embedded-rocksdb.md Co-authored-by: Anna <42538400+adevyatova@users.noreply.github.com> --- docs/ru/engines/table-engines/integrations/embedded-rocksdb.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md index e57b83070dc..3fd1b1e8d89 100644 --- a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md @@ -17,7 +17,8 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2], ... -) ENGINE = EmbeddedRocksDB PRIMARY KEY(primary_key_name) +) ENGINE = EmbeddedRocksDB +PRIMARY KEY(primary_key_name); ``` Обязательные параметры: From 47e8783f5be5a133ab133a18b90ced056aa00b4c Mon Sep 17 00:00:00 2001 From: damozhaeva <68770561+damozhaeva@users.noreply.github.com> Date: Fri, 25 Dec 2020 15:08:35 +0300 Subject: [PATCH 009/101] Update docs/ru/engines/table-engines/integrations/embedded-rocksdb.md Co-authored-by: Anna <42538400+adevyatova@users.noreply.github.com> --- docs/ru/engines/table-engines/integrations/embedded-rocksdb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md index 3fd1b1e8d89..575fc279b74 100644 --- a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md @@ -36,7 +36,7 @@ CREATE TABLE test `v3` Float32, ) ENGINE = EmbeddedRocksDB -PRIMARY KEY key +PRIMARY KEY key; ``` ## Описание {#description} From f13a075797b861eae34232e249968aef6c627f05 Mon Sep 17 00:00:00 2001 From: Daria Mozhaeva Date: Fri, 22 Jan 2021 19:40:58 +0300 Subject: [PATCH 010/101] Fixed notes. --- .../integrations/embedded-rocksdb.md | 15 ++++-------- .../integrations/embedded-rocksdb.md | 14 ++++------- docs/ru/operations/settings/settings.md | 24 +++++++++---------- 3 files changed, 21 insertions(+), 32 deletions(-) diff --git a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md index 79e0e040377..95602fa313a 100644 --- a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md @@ -1,4 +1,4 @@ ---- +.--- toc_priority: 6 toc_title: EmbeddedRocksDB --- @@ -7,8 +7,6 @@ toc_title: EmbeddedRocksDB This engine allows integrating ClickHouse with [rocksdb](http://rocksdb.org/). -`EmbeddedRocksDB` lets you: - ## Creating a Table {#table_engine-EmbeddedRocksDB-creating-a-table} ``` sql @@ -23,6 +21,9 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] Required parameters: - `primary_key_name` – any column name in the column list. +- `primary key` must be specified, it supports only one column in the primary key. The primary key will be serialized in binary as a `rocksdb key`. +- columns other than the primary key will be serialized in binary as `rocksdb` value in corresponding order. +- queries with key `equals` or `in` filtering will be optimized to multi keys lookup from `rocksdb`. Example: @@ -36,10 +37,4 @@ CREATE TABLE test ) ENGINE = EmbeddedRocksDB PRIMARY KEY key -``` - -## Description {#description} - -- `primary key` must be specified, it supports only one column in the primary key. The primary key will be serialized in binary as a rocksdb key. -- columns other than the primary key will be serialized in binary as rocksdb value in corresponding order. -- queries with key `equals` or `in` filtering will be optimized to multi keys lookup from rocksdb. +``` \ No newline at end of file diff --git a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md index 575fc279b74..cb59cc9b568 100644 --- a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md @@ -7,8 +7,6 @@ toc_title: EmbeddedRocksDB Этот движок позволяет интегрировать ClickHouse с [rocksdb](http://rocksdb.org/). -`EmbeddedRocksDB` дает возможность: - ## Создание таблицы {#table_engine-EmbeddedRocksDB-creating-a-table} ``` sql @@ -23,7 +21,9 @@ PRIMARY KEY(primary_key_name); Обязательные параметры: -- `primary_key_name` – любое имя столбца из списка столбцов. +`primary_key_name` может быть любое имя столбца из списка столбцов. +Указание первичного ключа `primary key` является обязательным. Он будет сериализован в двоичном формате как ключ `rocksdb`. Поддерживается только один столбец в первичном ключе. +Столбцы, которые отличаются от первичного ключа, будут сериализованы в двоичном формате как значение `rockdb` в соответствующем порядке. Запросы с фильтрацией по ключу `equals` или `in` оптимизируются для поиска по нескольким ключам из `rocksdb`. Пример: @@ -37,10 +37,4 @@ CREATE TABLE test ) ENGINE = EmbeddedRocksDB PRIMARY KEY key; -``` - -## Описание {#description} - -- должен быть указан `primary key`, он поддерживает только один столбец в первичном ключе. Первичный ключ будет сериализован в двоичном формате как ключ rocksdb. -- столбцы, отличные от первичного ключа, будут сериализованы в двоичном формате как значение rockdb в соответствующем порядке. -- запросы с фильтрацией по ключу `equals` или `in` будут оптимизированы для поиска по нескольким ключам из rocksdb. +``` \ No newline at end of file diff --git a/docs/ru/operations/settings/settings.md b/docs/ru/operations/settings/settings.md index b48ca668aa4..ace0ede7c4d 100644 --- a/docs/ru/operations/settings/settings.md +++ b/docs/ru/operations/settings/settings.md @@ -406,15 +406,15 @@ INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2; Возможные значения: -- `'best_effort'` — включает расширенный парсинг. +- `best_effort` — включает расширенный парсинг. - ClickHouse может парсить базовый формат `YYYY-MM-DD HH:MM:SS` и все форматы [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). Например, `'2018-06-08T01:02:03.000Z'`. + ClickHouse может парсить базовый формат `YYYY-MM-DD HH:MM:SS` и все форматы [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). Например, `2018-06-08T01:02:03.000Z`. -- `'basic'` — используется базовый парсер. +- `basic` — используется базовый парсер. - ClickHouse может парсить только базовый формат `YYYY-MM-DD HH:MM:SS`. Например, `'2019-08-20 10:18:56'`. + ClickHouse может парсить только базовый формат `YYYY-MM-DD HH:MM:SS`. Например, `2019-08-20 10:18:56`. -Значение по умолчанию: `'basic'`. +Значение по умолчанию: `basic`. См. также: @@ -427,19 +427,19 @@ INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2; Возможные значения: -- `'simple'` - простой выходной формат. +- `simple` - простой выходной формат. - Выходные дата и время Clickhouse в формате `YYYY-MM-DD hh:mm:ss`. Например, `'2019-08-20 10:18:56'`. Расчет выполняется в соответствии с часовым поясом типа данных (если он есть) или часовым поясом сервера. + Выходные дата и время Clickhouse в формате `YYYY-MM-DD hh:mm:ss`. Например, `2019-08-20 10:18:56`. Расчет выполняется в соответствии с часовым поясом типа данных (если он есть) или часовым поясом сервера. -- `'iso'` - выходной формат ISO. +- `iso` - выходной формат ISO. - Выходные дата и время Clickhouse в формате [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) `YYYY-MM-DDThh:mm:ssZ`. Например, `'2019-08-20T10:18:56Z'`. Обратите внимание, что выходные данные отображаются в формате UTC (`Z` означает UTC). + Выходные дата и время Clickhouse в формате [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) `YYYY-MM-DDThh:mm:ssZ`. Например, `2019-08-20T10:18:56Z`. Обратите внимание, что выходные данные отображаются в формате UTC (`Z` означает UTC). -- `'unix_timestamp'` - выходной формат Unix. +- `unix_timestamp` - выходной формат Unix. - Выходные дата и время в формате [Unix](https://en.wikipedia.org/wiki/Unix_time). Например `'1566285536'`. + Выходные дата и время в формате [Unix](https://en.wikipedia.org/wiki/Unix_time). Например `1566285536`. -Значение по умолчанию: `'simple'`. +Значение по умолчанию: `simple`. См. также: From 7014729aad53ef88aa54ae69d43d28f99dc722db Mon Sep 17 00:00:00 2001 From: Daria Mozhaeva Date: Fri, 22 Jan 2021 20:11:00 +0300 Subject: [PATCH 011/101] add punctuation. --- docs/en/operations/settings/settings.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/en/operations/settings/settings.md b/docs/en/operations/settings/settings.md index 1ff2ea77fd0..3591ee200e5 100644 --- a/docs/en/operations/settings/settings.md +++ b/docs/en/operations/settings/settings.md @@ -443,19 +443,19 @@ Allows choosing different output formats of the text representation of date and Possible values: -- `'simple'` - Simple output format. +- `simple` - Simple output format. - Clickhouse output date and time `YYYY-MM-DD hh:mm:ss` format. For example, `'2019-08-20 10:18:56'`. The calculation is performed according to the data type's time zone (if present) or server time zone. + Clickhouse output date and time `YYYY-MM-DD hh:mm:ss` format. For example, `2019-08-20 10:18:56`. The calculation is performed according to the data type's time zone (if present) or server time zone. -- `'iso'` - ISO output format. +- `iso` - ISO output format. - Clickhouse output date and time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) `YYYY-MM-DDThh:mm:ssZ` format. For example, `'2019-08-20T10:18:56Z'`. Note that output is in UTC (`Z` means UTC). + Clickhouse output date and time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) `YYYY-MM-DDThh:mm:ssZ` format. For example, `2019-08-20T10:18:56Z`. Note that output is in UTC (`Z` means UTC). -- `'unix_timestamp'` - Unix timestamp output format. +- `unix_timestamp` - Unix timestamp output format. - Clickhouse output date and time in [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) format. For example `'1566285536'`. + Clickhouse output date and time in [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time) format. For example `1566285536`. -Default value: `'simple'`. +Default value: `simple`. See also: From 39c99edfe5db0a65537eab183d1eb676f035f313 Mon Sep 17 00:00:00 2001 From: Daria Mozhaeva Date: Mon, 25 Jan 2021 17:13:29 +0300 Subject: [PATCH 012/101] edit eng ver --- docs/en/engines/table-engines/integrations/embedded-rocksdb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md index 95602fa313a..b1d21cc5f00 100644 --- a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md @@ -1,4 +1,4 @@ -.--- +--- toc_priority: 6 toc_title: EmbeddedRocksDB --- From 9ee5c1535ef282889f4a6c361fcb27c66dc95f08 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Mon, 25 Jan 2021 23:29:04 +0300 Subject: [PATCH 013/101] Allow to disable checksums on read --- src/Core/Settings.h | 1 + src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp | 3 ++- src/Storages/MergeTree/MergeTreeIOSettings.h | 2 ++ src/Storages/MergeTree/MergeTreeReaderCompact.cpp | 6 ++++++ src/Storages/MergeTree/MergeTreeReaderStream.cpp | 3 +++ 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Core/Settings.h b/src/Core/Settings.h index cc32417af09..11c10b6f5c6 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -139,6 +139,7 @@ class IColumn; \ M(UInt64, min_bytes_to_use_direct_io, 0, "The minimum number of bytes for reading the data with O_DIRECT option during SELECT queries execution. 0 - disabled.", 0) \ M(UInt64, min_bytes_to_use_mmap_io, 0, "The minimum number of bytes for reading the data with mmap option during SELECT queries execution. 0 - disabled.", 0) \ + M(Bool, checksum_on_read, true, "Validate checksums on reading. It is enabled by default and should be always enabled in production. Please do not expect any benefits in disabling this setting. It may only be used for experiments and benchmarks. The setting only applicable for tables of MergeTree family. Checksums are always validated for other table engines and when receiving data over network.", 0) \ \ M(Bool, force_index_by_date, 0, "Throw an exception if there is a partition key in a table, and it is not used.", 0) \ M(Bool, force_primary_key, 0, "Throw an exception if there is primary key in a table, and it is not used.", 0) \ diff --git a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp index 6b2e3c5a8a4..c414e735c0a 100644 --- a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp +++ b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp @@ -547,7 +547,8 @@ QueryPlanPtr MergeTreeDataSelectExecutor::readFromParts( .min_bytes_to_use_direct_io = settings.min_bytes_to_use_direct_io, .min_bytes_to_use_mmap_io = settings.min_bytes_to_use_mmap_io, .max_read_buffer_size = settings.max_read_buffer_size, - .save_marks_in_cache = true + .checksum_on_read = settings.checksum_on_read, + .save_marks_in_cache = true, }; /// PREWHERE diff --git a/src/Storages/MergeTree/MergeTreeIOSettings.h b/src/Storages/MergeTree/MergeTreeIOSettings.h index d82aa7dd7c2..f2469494792 100644 --- a/src/Storages/MergeTree/MergeTreeIOSettings.h +++ b/src/Storages/MergeTree/MergeTreeIOSettings.h @@ -16,6 +16,8 @@ struct MergeTreeReaderSettings bool save_marks_in_cache = false; /// Convert old-style nested (single arrays with same prefix, `n.a`, `n.b`...) to subcolumns of data type Nested. bool convert_nested_to_subcolumns = false; + /// Validate checksums on reading (should be always enabled in production). + bool checksum_on_read = true; }; struct MergeTreeWriterSettings diff --git a/src/Storages/MergeTree/MergeTreeReaderCompact.cpp b/src/Storages/MergeTree/MergeTreeReaderCompact.cpp index 635c59cf19a..67268e8afd8 100644 --- a/src/Storages/MergeTree/MergeTreeReaderCompact.cpp +++ b/src/Storages/MergeTree/MergeTreeReaderCompact.cpp @@ -92,6 +92,9 @@ MergeTreeReaderCompact::MergeTreeReaderCompact( if (profile_callback_) buffer->setProfileCallback(profile_callback_, clock_type_); + if (!settings.checksum_on_read) + buffer->disableChecksumming(); + cached_buffer = std::move(buffer); data_buffer = cached_buffer.get(); } @@ -106,6 +109,9 @@ MergeTreeReaderCompact::MergeTreeReaderCompact( if (profile_callback_) buffer->setProfileCallback(profile_callback_, clock_type_); + if (!settings.checksum_on_read) + buffer->disableChecksumming(); + non_cached_buffer = std::move(buffer); data_buffer = non_cached_buffer.get(); } diff --git a/src/Storages/MergeTree/MergeTreeReaderStream.cpp b/src/Storages/MergeTree/MergeTreeReaderStream.cpp index 1754fb201eb..08cb49445f0 100644 --- a/src/Storages/MergeTree/MergeTreeReaderStream.cpp +++ b/src/Storages/MergeTree/MergeTreeReaderStream.cpp @@ -96,6 +96,9 @@ MergeTreeReaderStream::MergeTreeReaderStream( if (profile_callback) buffer->setProfileCallback(profile_callback, clock_type); + if (!settings.checksum_on_read) + buffer->disableChecksumming(); + cached_buffer = std::move(buffer); data_buffer = cached_buffer.get(); } From 8dfa9330287981eea28f57ad168c999e46954ba7 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Mon, 25 Jan 2021 23:48:10 +0300 Subject: [PATCH 014/101] Amend --- src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp index c414e735c0a..b44e7197c12 100644 --- a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp +++ b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp @@ -547,8 +547,8 @@ QueryPlanPtr MergeTreeDataSelectExecutor::readFromParts( .min_bytes_to_use_direct_io = settings.min_bytes_to_use_direct_io, .min_bytes_to_use_mmap_io = settings.min_bytes_to_use_mmap_io, .max_read_buffer_size = settings.max_read_buffer_size, - .checksum_on_read = settings.checksum_on_read, .save_marks_in_cache = true, + .checksum_on_read = settings.checksum_on_read, }; /// PREWHERE From b6657855ee3b6ab467aed20d7a8175955cd56b8e Mon Sep 17 00:00:00 2001 From: bharatnc Date: Tue, 26 Jan 2021 11:06:07 -0800 Subject: [PATCH 015/101] Docs - fixes the description of window param --- .../sql-reference/aggregate-functions/parametric-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/aggregate-functions/parametric-functions.md b/docs/en/sql-reference/aggregate-functions/parametric-functions.md index 3b02e145ff4..4b3bf12aa8c 100644 --- a/docs/en/sql-reference/aggregate-functions/parametric-functions.md +++ b/docs/en/sql-reference/aggregate-functions/parametric-functions.md @@ -241,7 +241,7 @@ windowFunnel(window, [mode])(timestamp, cond1, cond2, ..., condN) **Parameters** -- `window` — Length of the sliding window in seconds. +- `window` — Length of the sliding window. The unit of `window` depends on the timestamp itself and varies. Determined using the expression `timestamp of cond2 <= timestamp of cond1 + window`. - `mode` - It is an optional argument. - `'strict'` - When the `'strict'` is set, the windowFunnel() applies conditions only for the unique values. - `timestamp` — Name of the column containing the timestamp. Data types supported: [Date](../../sql-reference/data-types/date.md), [DateTime](../../sql-reference/data-types/datetime.md#data_type-datetime) and other unsigned integer types (note that even though timestamp supports the `UInt64` type, it’s value can’t exceed the Int64 maximum, which is 2^63 - 1). From f4448ef01e468018d64feabd4fcbcd5041d6528a Mon Sep 17 00:00:00 2001 From: Daria Mozhaeva Date: Tue, 26 Jan 2021 22:24:06 +0300 Subject: [PATCH 016/101] links --- .../table-engines/integrations/embedded-rocksdb.md | 4 +++- docs/en/operations/settings/settings.md | 2 +- .../table-engines/integrations/embedded-rocksdb.md | 14 +++++++++----- docs/ru/operations/settings/settings.md | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md index b1d21cc5f00..6e864751cc3 100644 --- a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md @@ -37,4 +37,6 @@ CREATE TABLE test ) ENGINE = EmbeddedRocksDB PRIMARY KEY key -``` \ No newline at end of file +``` + +[Original article](https://clickhouse.tech/docs/en/operations/table_engines/embedded-rocksdb/) diff --git a/docs/en/operations/settings/settings.md b/docs/en/operations/settings/settings.md index 03c3f4397ac..27a566dad44 100644 --- a/docs/en/operations/settings/settings.md +++ b/docs/en/operations/settings/settings.md @@ -428,7 +428,7 @@ Possible values: - `'basic'` — Use basic parser. - ClickHouse can parse only the basic `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DD` format. For example, `'2019-08-20 10:18:56'` or `2019-08-20`. + ClickHouse can parse only the basic `YYYY-MM-DD HH:MM:SS` or `YYYY-MM-DD` format. For example, `2019-08-20 10:18:56` or `2019-08-20`. Default value: `'basic'`. diff --git a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md index cb59cc9b568..9b68bcfc770 100644 --- a/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/ru/engines/table-engines/integrations/embedded-rocksdb.md @@ -3,7 +3,7 @@ toc_priority: 6 toc_title: EmbeddedRocksDB --- -# EmbeddedRocksDB Engine {#EmbeddedRocksDB-engine} +# Движок EmbeddedRocksDB {#EmbeddedRocksDB-engine} Этот движок позволяет интегрировать ClickHouse с [rocksdb](http://rocksdb.org/). @@ -21,9 +21,11 @@ PRIMARY KEY(primary_key_name); Обязательные параметры: -`primary_key_name` может быть любое имя столбца из списка столбцов. -Указание первичного ключа `primary key` является обязательным. Он будет сериализован в двоичном формате как ключ `rocksdb`. Поддерживается только один столбец в первичном ключе. -Столбцы, которые отличаются от первичного ключа, будут сериализованы в двоичном формате как значение `rockdb` в соответствующем порядке. Запросы с фильтрацией по ключу `equals` или `in` оптимизируются для поиска по нескольким ключам из `rocksdb`. +- `primary_key_name` может быть любое имя столбца из списка столбцов. +- Указание первичного ключа `primary key` является обязательным. Он будет сериализован в двоичном формате как ключ `rocksdb`. +- Поддерживается только один столбец в первичном ключе. +- Столбцы, которые отличаются от первичного ключа, будут сериализованы в двоичном формате как значение `rockdb` в соответствующем порядке. +- Запросы с фильтрацией по ключу `equals` или `in` оптимизируются для поиска по нескольким ключам из `rocksdb`. Пример: @@ -37,4 +39,6 @@ CREATE TABLE test ) ENGINE = EmbeddedRocksDB PRIMARY KEY key; -``` \ No newline at end of file +``` + +[Оригинальная статья](https://clickhouse.tech/docs/ru/operations/table_engines/embedded-rocksdb/) \ No newline at end of file diff --git a/docs/ru/operations/settings/settings.md b/docs/ru/operations/settings/settings.md index 2b4164f49ea..662a597ba0d 100644 --- a/docs/ru/operations/settings/settings.md +++ b/docs/ru/operations/settings/settings.md @@ -412,7 +412,7 @@ ClickHouse может парсить базовый формат `YYYY-MM-DD HH: - `basic` — используется базовый парсер. -ClickHouse может парсить только базовый формат `YYYY-MM-DD HH:MM:SS` или `YYYY-MM-DD`. Например, `'2019-08-20 10:18:56'` или `2019-08-20`. +ClickHouse может парсить только базовый формат `YYYY-MM-DD HH:MM:SS` или `YYYY-MM-DD`. Например, `2019-08-20 10:18:56` или `2019-08-20`. Значение по умолчанию: `basic`. From 48b4d98b2136c5c7f25b0d96e15c04be9c6204ad Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Wed, 27 Jan 2021 04:48:41 +0300 Subject: [PATCH 017/101] Amend --- src/Storages/MergeTree/MergeTreeReadPool.h | 3 ++- src/Storages/MergeTree/MergeTreeReaderStream.cpp | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Storages/MergeTree/MergeTreeReadPool.h b/src/Storages/MergeTree/MergeTreeReadPool.h index aa6811661e6..366e9a2381a 100644 --- a/src/Storages/MergeTree/MergeTreeReadPool.h +++ b/src/Storages/MergeTree/MergeTreeReadPool.h @@ -71,7 +71,8 @@ private: public: MergeTreeReadPool( const size_t threads_, const size_t sum_marks_, const size_t min_marks_for_concurrent_read_, - RangesInDataParts && parts_, const MergeTreeData & data_, const StorageMetadataPtr & metadata_snapshot_, const PrewhereInfoPtr & prewhere_info_, + RangesInDataParts && parts_, const MergeTreeData & data_, const StorageMetadataPtr & metadata_snapshot_, + const PrewhereInfoPtr & prewhere_info_, const bool check_columns_, const Names & column_names_, const BackoffSettings & backoff_settings_, size_t preferred_block_size_bytes_, const bool do_not_steal_tasks_ = false); diff --git a/src/Storages/MergeTree/MergeTreeReaderStream.cpp b/src/Storages/MergeTree/MergeTreeReaderStream.cpp index 08cb49445f0..fd251497d7c 100644 --- a/src/Storages/MergeTree/MergeTreeReaderStream.cpp +++ b/src/Storages/MergeTree/MergeTreeReaderStream.cpp @@ -112,6 +112,9 @@ MergeTreeReaderStream::MergeTreeReaderStream( if (profile_callback) buffer->setProfileCallback(profile_callback, clock_type); + if (!settings.checksum_on_read) + buffer->disableChecksumming(); + non_cached_buffer = std::move(buffer); data_buffer = non_cached_buffer.get(); } From d21d838604abcedc38dfa779f2fe89e33944cbf8 Mon Sep 17 00:00:00 2001 From: Yatsishin Ilya <2159081+qoega@users.noreply.github.com> Date: Wed, 27 Jan 2021 12:50:11 +0300 Subject: [PATCH 018/101] No more dicttoxml with excessive logs --- docker/test/integration/runner/Dockerfile | 2 +- tests/integration/helpers/cluster.py | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docker/test/integration/runner/Dockerfile b/docker/test/integration/runner/Dockerfile index 9b51891ccf5..56abf1122b2 100644 --- a/docker/test/integration/runner/Dockerfile +++ b/docker/test/integration/runner/Dockerfile @@ -62,7 +62,7 @@ RUN python3 -m pip install \ avro \ cassandra-driver \ confluent-kafka \ - dicttoxml \ + dict2xml \ docker \ docker-compose==1.22.0 \ grpcio \ diff --git a/tests/integration/helpers/cluster.py b/tests/integration/helpers/cluster.py index 4d8f3c68025..ee4ea8c94d5 100644 --- a/tests/integration/helpers/cluster.py +++ b/tests/integration/helpers/cluster.py @@ -20,9 +20,8 @@ import psycopg2 import pymongo import pymysql import requests -import xml.dom.minidom +from dict2xml import dict2xml from confluent_kafka.avro.cached_schema_registry_client import CachedSchemaRegistryClient -from dicttoxml import dicttoxml from kazoo.client import KazooClient from kazoo.exceptions import KazooException from minio import Minio @@ -1192,8 +1191,8 @@ class ClickHouseInstance: @staticmethod def dict_to_xml(dictionary): - xml_str = dicttoxml(dictionary, custom_root="yandex", attr_type=False) - return xml.dom.minidom.parseString(xml_str).toprettyxml() + xml_str = dict2xml(dictionary, wrap="yandex", indent=" ", newlines=True) + return xml_str @property def odbc_drivers(self): From 7a2f6cd5b979d1d1f9fc80a873f0bc6393ad0a96 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Sat, 19 Dec 2020 00:43:08 +0300 Subject: [PATCH 019/101] Dictionaries refactoring to new interface --- src/Dictionaries/CacheDictionary.h | 2 + src/Dictionaries/ComplexKeyCacheDictionary.h | 2 + src/Dictionaries/ComplexKeyDirectDictionary.h | 2 + src/Dictionaries/ComplexKeyHashedDictionary.h | 2 + src/Dictionaries/DictionaryBlockInputStream.h | 342 +----- src/Dictionaries/DictionaryStructure.cpp | 32 +- src/Dictionaries/DictionaryStructure.h | 66 ++ src/Dictionaries/DirectDictionary.h | 2 + src/Dictionaries/FlatDictionary.cpp | 514 ++++----- src/Dictionaries/FlatDictionary.h | 76 +- src/Dictionaries/HashedDictionary.h | 2 + src/Dictionaries/IPAddressDictionary.h | 2 + src/Dictionaries/PolygonDictionary.h | 2 + src/Dictionaries/RangeHashedDictionary.h | 2 + src/Dictionaries/SSDCacheDictionary.h | 2 + .../SSDComplexKeyCacheDictionary.h | 2 + src/Functions/FunctionsExternalDictionaries.h | 986 ++---------------- 17 files changed, 411 insertions(+), 1627 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index b9bd0b7623b..f2f364af9da 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -119,6 +119,8 @@ public: std::exception_ptr getLastException() const override; + static constexpr DictionaryGetByType get_by_type = DictionaryGetByType::unsupported; + template using ResultArrayType = std::conditional_t, DecimalPaddedPODArray, PaddedPODArray>; diff --git a/src/Dictionaries/ComplexKeyCacheDictionary.h b/src/Dictionaries/ComplexKeyCacheDictionary.h index 2663fee266d..36a1457570c 100644 --- a/src/Dictionaries/ComplexKeyCacheDictionary.h +++ b/src/Dictionaries/ComplexKeyCacheDictionary.h @@ -89,6 +89,8 @@ public: return dict_struct.attributes[&getAttribute(attribute_name) - attributes.data()].injective; } + static constexpr DictionaryGetByType get_by_type = DictionaryGetByType::unsupported; + template using ResultArrayType = std::conditional_t, DecimalPaddedPODArray, PaddedPODArray>; diff --git a/src/Dictionaries/ComplexKeyDirectDictionary.h b/src/Dictionaries/ComplexKeyDirectDictionary.h index dc602be103f..670f2ac0a85 100644 --- a/src/Dictionaries/ComplexKeyDirectDictionary.h +++ b/src/Dictionaries/ComplexKeyDirectDictionary.h @@ -60,6 +60,8 @@ public: return dict_struct.attributes[&getAttribute(attribute_name) - attributes.data()].injective; } + static constexpr DictionaryGetByType get_by_type = DictionaryGetByType::unsupported; + template using ResultArrayType = std::conditional_t, DecimalPaddedPODArray, PaddedPODArray>; diff --git a/src/Dictionaries/ComplexKeyHashedDictionary.h b/src/Dictionaries/ComplexKeyHashedDictionary.h index baf6628eebd..82677458298 100644 --- a/src/Dictionaries/ComplexKeyHashedDictionary.h +++ b/src/Dictionaries/ComplexKeyHashedDictionary.h @@ -60,6 +60,8 @@ public: return dict_struct.attributes[&getAttribute(attribute_name) - attributes.data()].injective; } + static constexpr DictionaryGetByType get_by_type = DictionaryGetByType::unsupported; + template using ResultArrayType = std::conditional_t, DecimalPaddedPODArray, PaddedPODArray>; diff --git a/src/Dictionaries/DictionaryBlockInputStream.h b/src/Dictionaries/DictionaryBlockInputStream.h index c683ef0e9cc..96d5fac966f 100644 --- a/src/Dictionaries/DictionaryBlockInputStream.h +++ b/src/Dictionaries/DictionaryBlockInputStream.h @@ -60,111 +60,9 @@ protected: Block getBlock(size_t start, size_t size) const override; private: - // pointer types to getXXX functions - // for single key dictionaries - template - using DictionaryGetter = void (DictionaryType::*)(const std::string &, const PaddedPODArray &, PaddedPODArray &) const; - - template - using DictionaryDecimalGetter - = void (DictionaryType::*)(const std::string &, const PaddedPODArray &, DecimalPaddedPODArray &) const; - - using DictionaryStringGetter = void (DictionaryType::*)(const std::string &, const PaddedPODArray &, ColumnString *) const; - - // for complex complex key dictionaries - template - using GetterByKey = void (DictionaryType::*)(const std::string &, const Columns &, const DataTypes &, PaddedPODArray & out) const; - - template - using DecimalGetterByKey - = void (DictionaryType::*)(const std::string &, const Columns &, const DataTypes &, DecimalPaddedPODArray & out) const; - - using StringGetterByKey = void (DictionaryType::*)(const std::string &, const Columns &, const DataTypes &, ColumnString * out) const; - - // call getXXX - // for single key dictionaries - template - void callGetter( - DictionaryGetter getter, - const PaddedPODArray & ids_to_fill, - const Columns & keys, - const DataTypes & data_types, - Container & container, - const DictionaryAttribute & attribute, - const DictionaryType & dictionary) const; - - template - void callGetter( - DictionaryDecimalGetter getter, - const PaddedPODArray & ids_to_fill, - const Columns & keys, - const DataTypes & data_types, - Container & container, - const DictionaryAttribute & attribute, - const DictionaryType & dictionary) const; - - template - void callGetter( - DictionaryStringGetter getter, - const PaddedPODArray & ids_to_fill, - const Columns & keys, - const DataTypes & data_types, - Container & container, - const DictionaryAttribute & attribute, - const DictionaryType & dictionary) const; - - // for complex complex key dictionaries - template - void callGetter( - GetterByKey getter, - const PaddedPODArray & ids_to_fill, - const Columns & keys, - const DataTypes & data_types, - Container & container, - const DictionaryAttribute & attribute, - const DictionaryType & dictionary) const; - - template - void callGetter( - DecimalGetterByKey getter, - const PaddedPODArray & ids_to_fill, - const Columns & keys, - const DataTypes & data_types, - Container & container, - const DictionaryAttribute & attribute, - const DictionaryType & dictionary) const; - - template - void callGetter( - StringGetterByKey getter, - const PaddedPODArray & ids_to_fill, - const Columns & keys, - const DataTypes & data_types, - Container & container, - const DictionaryAttribute & attribute, - const DictionaryType & dictionary) const; - - template