From d38955396a28f24e483150ee66c105bed42c61ec Mon Sep 17 00:00:00 2001 From: romanzhukov Date: Wed, 29 Sep 2021 22:15:01 +0300 Subject: [PATCH 1/8] Update formats.md Add json square brackets --- docs/en/interfaces/formats.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/docs/en/interfaces/formats.md b/docs/en/interfaces/formats.md index 07104311b44..0afbbdc4838 100644 --- a/docs/en/interfaces/formats.md +++ b/docs/en/interfaces/formats.md @@ -515,11 +515,11 @@ Example: ## JSONAsString {#jsonasstring} -In this format, a single JSON object is interpreted as a single value. If the input has several JSON objects (comma separated) they will be interpreted as separate rows. +In this format, a single JSON object is interpreted as a single value. If the input has several JSON objects (comma separated) they will be interpreted as separate rows. The input data can be enclosed in an array of the format with square brackets. This format can only be parsed for table with a single field of type [String](../sql-reference/data-types/string.md). The remaining columns must be set to [DEFAULT](../sql-reference/statements/create/table.md#default) or [MATERIALIZED](../sql-reference/statements/create/table.md#materialized), or omitted. Once you collect whole JSON object to string you can use [JSON functions](../sql-reference/functions/json-functions.md) to process it. -**Example** +**Examples** Query: @@ -540,6 +540,27 @@ Result: └───────────────────────────────────┘ ``` +A special case when objects enclosed in array. + +Query: + +``` sql +DROP TABLE IF EXISTS json_square_brackets; +CREATE TABLE json_square_brackets (field String) ENGINE = Memory; +INSERT INTO json_square_brackets FORMAT JSONAsString [{"id": 1, "name": "name1"}, {"id": 2, "name": "name2"}]; + +SELECT * FROM json_square_brackets; +``` + +Result: + +```text +┌─field──────────────────────┐ +│ {"id": 1, "name": "name1"} │ +│ {"id": 2, "name": "name2"} │ +└────────────────────────────┘ +``` + ## JSONCompact {#jsoncompact} ## JSONCompactStrings {#jsoncompactstrings} From 15106dde358829ff3038ef656caef1320d1b91d7 Mon Sep 17 00:00:00 2001 From: romanzhukov Date: Wed, 29 Sep 2021 22:18:04 +0300 Subject: [PATCH 2/8] Update formats.md Minor fix --- docs/en/interfaces/formats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/interfaces/formats.md b/docs/en/interfaces/formats.md index 0afbbdc4838..1eb8772f788 100644 --- a/docs/en/interfaces/formats.md +++ b/docs/en/interfaces/formats.md @@ -540,7 +540,7 @@ Result: └───────────────────────────────────┘ ``` -A special case when objects enclosed in array. +A special case when objects enclosed in array with square brackets. Query: From 7ca252215408f0c13249a86a1beb004e09d38582 Mon Sep 17 00:00:00 2001 From: romanzhukov Date: Mon, 4 Oct 2021 14:23:07 +0300 Subject: [PATCH 3/8] Add ru translation --- docs/en/interfaces/formats.md | 2 +- docs/ru/interfaces/formats.md | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/docs/en/interfaces/formats.md b/docs/en/interfaces/formats.md index 1eb8772f788..92fa4f8dc9a 100644 --- a/docs/en/interfaces/formats.md +++ b/docs/en/interfaces/formats.md @@ -540,7 +540,7 @@ Result: └───────────────────────────────────┘ ``` -A special case when objects enclosed in array with square brackets. +A particular case when JSON objects are enclosed in array with square brackets. Query: diff --git a/docs/ru/interfaces/formats.md b/docs/ru/interfaces/formats.md index d0bcb057cf2..5ebdf3f0aff 100644 --- a/docs/ru/interfaces/formats.md +++ b/docs/ru/interfaces/formats.md @@ -493,7 +493,7 @@ ClickHouse поддерживает [NULL](../sql-reference/syntax.md), кото ## JSONAsString {#jsonasstring} -В этом формате один объект JSON интерпретируется как одно строковое значение. Если входные данные имеют несколько объектов JSON, разделенных запятой, то они будут интерпретироваться как отдельные строки таблицы. +В этом формате один объект JSON интерпретируется как одно строковое значение. Если входные данные имеют несколько объектов JSON, разделенных запятой, то они будут интерпретироваться как отдельные строки таблицы. Входные данные могут быть представлены в виде массива формата с квадратными скобками. В этом формате парситься может только таблица с единственным полем типа [String](../sql-reference/data-types/string.md). Остальные столбцы должны быть заданы как `DEFAULT` или `MATERIALIZED`(смотрите раздел [Значения по умолчанию](../sql-reference/statements/create/table.md#create-default-values)), либо отсутствовать. Для дальнейшей обработки объекта JSON, представленного в строке, вы можете использовать [функции для работы с JSON](../sql-reference/functions/json-functions.md). @@ -518,6 +518,28 @@ SELECT * FROM json_as_string; └───────────────────────────────────┘ ``` +Частный случай, когда объекты JSON заключены в массив с квадратными скобками. + +Запрос: + +``` sql +DROP TABLE IF EXISTS json_square_brackets; +CREATE TABLE json_square_brackets (field String) ENGINE = Memory; +INSERT INTO json_square_brackets FORMAT JSONAsString [{"id": 1, "name": "name1"}, {"id": 2, "name": "name2"}]; + +SELECT * FROM json_square_brackets; +``` + +Результат: + +```text +┌─field──────────────────────┐ +│ {"id": 1, "name": "name1"} │ +│ {"id": 2, "name": "name2"} │ +└────────────────────────────┘ +``` + + ## JSONCompact {#jsoncompact} ## JSONCompactStrings {#jsoncompactstrings} From f469d75b9151e40a8a46aea2922eaf583d41781c Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 5 Oct 2021 11:02:19 +0300 Subject: [PATCH 4/8] Update docs/en/interfaces/formats.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/interfaces/formats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/interfaces/formats.md b/docs/en/interfaces/formats.md index 92fa4f8dc9a..1f05efdc4f8 100644 --- a/docs/en/interfaces/formats.md +++ b/docs/en/interfaces/formats.md @@ -515,7 +515,7 @@ Example: ## JSONAsString {#jsonasstring} -In this format, a single JSON object is interpreted as a single value. If the input has several JSON objects (comma separated) they will be interpreted as separate rows. The input data can be enclosed in an array of the format with square brackets. +In this format, a single JSON object is interpreted as a single value. If the input has several JSON objects (comma separated), they are interpreted as separate rows. If the input data is enclosed in square brackets, it is interpreted as an array of JSONs. This format can only be parsed for table with a single field of type [String](../sql-reference/data-types/string.md). The remaining columns must be set to [DEFAULT](../sql-reference/statements/create/table.md#default) or [MATERIALIZED](../sql-reference/statements/create/table.md#materialized), or omitted. Once you collect whole JSON object to string you can use [JSON functions](../sql-reference/functions/json-functions.md) to process it. From 3906fc9374a92699d3aefb0115b68dc722750904 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 5 Oct 2021 11:02:30 +0300 Subject: [PATCH 5/8] Update docs/en/interfaces/formats.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/interfaces/formats.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/en/interfaces/formats.md b/docs/en/interfaces/formats.md index 1f05efdc4f8..6a483c37cd9 100644 --- a/docs/en/interfaces/formats.md +++ b/docs/en/interfaces/formats.md @@ -545,7 +545,6 @@ A particular case when JSON objects are enclosed in array with square brackets. Query: ``` sql -DROP TABLE IF EXISTS json_square_brackets; CREATE TABLE json_square_brackets (field String) ENGINE = Memory; INSERT INTO json_square_brackets FORMAT JSONAsString [{"id": 1, "name": "name1"}, {"id": 2, "name": "name2"}]; From 9864655c454f646a779101e73843f45f7e144606 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 5 Oct 2021 11:02:37 +0300 Subject: [PATCH 6/8] Update docs/ru/interfaces/formats.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/interfaces/formats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/interfaces/formats.md b/docs/ru/interfaces/formats.md index 5ebdf3f0aff..5a9f051521f 100644 --- a/docs/ru/interfaces/formats.md +++ b/docs/ru/interfaces/formats.md @@ -493,7 +493,7 @@ ClickHouse поддерживает [NULL](../sql-reference/syntax.md), кото ## JSONAsString {#jsonasstring} -В этом формате один объект JSON интерпретируется как одно строковое значение. Если входные данные имеют несколько объектов JSON, разделенных запятой, то они будут интерпретироваться как отдельные строки таблицы. Входные данные могут быть представлены в виде массива формата с квадратными скобками. +В этом формате один объект JSON интерпретируется как одно строковое значение. Если входные данные имеют несколько объектов JSON, разделенных запятой, то они интерпретируются как отдельные строки таблицы. Если входные данные заключены в квадратные скобки, они интерпретируются как массив JSON-объектов. В этом формате парситься может только таблица с единственным полем типа [String](../sql-reference/data-types/string.md). Остальные столбцы должны быть заданы как `DEFAULT` или `MATERIALIZED`(смотрите раздел [Значения по умолчанию](../sql-reference/statements/create/table.md#create-default-values)), либо отсутствовать. Для дальнейшей обработки объекта JSON, представленного в строке, вы можете использовать [функции для работы с JSON](../sql-reference/functions/json-functions.md). From bf049015a3ac415016d5ff1331eaa3318882832c Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 5 Oct 2021 11:03:11 +0300 Subject: [PATCH 7/8] Update docs/ru/interfaces/formats.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/interfaces/formats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/interfaces/formats.md b/docs/ru/interfaces/formats.md index 5a9f051521f..d4cfa8a053c 100644 --- a/docs/ru/interfaces/formats.md +++ b/docs/ru/interfaces/formats.md @@ -518,7 +518,7 @@ SELECT * FROM json_as_string; └───────────────────────────────────┘ ``` -Частный случай, когда объекты JSON заключены в массив с квадратными скобками. +**Пример с массивом объектов JSON** Запрос: From 491c9c20658ed376d2d474a656480663b039498a Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 5 Oct 2021 11:03:17 +0300 Subject: [PATCH 8/8] Update docs/en/interfaces/formats.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/interfaces/formats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/interfaces/formats.md b/docs/en/interfaces/formats.md index 6a483c37cd9..d0e5c44b4f7 100644 --- a/docs/en/interfaces/formats.md +++ b/docs/en/interfaces/formats.md @@ -540,7 +540,7 @@ Result: └───────────────────────────────────┘ ``` -A particular case when JSON objects are enclosed in array with square brackets. +**An array of JSON objects** Query: