From 35fd0b80f481a50936815ae44ec2a84c925c9e18 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Thu, 26 Aug 2021 11:16:05 +0000 Subject: [PATCH 01/28] Update bin/unbin fucntions --- .../functions/encoding-functions.md | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index c22f041e0c3..6fd98510b3a 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -210,52 +210,52 @@ Result: Returns a string containing the argument’s binary representation. -Alias: `BIN`. - **Syntax** ``` sql bin(arg) ``` +Alias: `BIN`. + For integer arguments, it prints bin digits from the most significant to least significant (big-endian or “human-readable” order). It starts with the most significant non-zero byte (leading zero bytes are omitted) but always prints eight digits of every byte if the leading digit is zero. -**Example** - -Query: - -``` sql -SELECT bin(1); -``` - -Result: - -``` text -00000001 -``` - Values of type `Date` and `DateTime` are formatted as corresponding integers (the number of days since Epoch for Date and the value of Unix Timestamp for DateTime). For `String` and `FixedString`, all bytes are simply encoded as eight binary numbers. Zero bytes are not omitted. -Values of floating-point and Decimal types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. +Values of `floating-point` and `Decimal` types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. **Arguments** -- `arg` — A value to convert to binary. Types: [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) or [DateTime](../../sql-reference/data-types/datetime.md). +- `arg` — A value to convert to binary. [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md), or [DateTime](../../sql-reference/data-types/datetime.md). **Returned value** - A string with the binary representation of the argument. -Type: `String`. +Type: [String](../../sql-reference/data-types/string.md). -**Example** +**Examples** Query: ``` sql -SELECT bin(toFloat32(number)) as bin_presentation FROM numbers(15, 2); +SELECT bin(14); +``` + +Result: + +``` text +┌─bin(14)──┐ +│ 00001110 │ +└──────────┘ +``` + +Query: + +``` sql +SELECT bin(toFloat32(number)) AS bin_presentation FROM numbers(15, 2); ``` Result: @@ -270,7 +270,7 @@ Result: Query: ``` sql -SELECT bin(toFloat64(number)) as bin_presentation FROM numbers(15, 2); +SELECT bin(toFloat64(number)) AS bin_presentation FROM numbers(15, 2); ``` Result: @@ -284,14 +284,7 @@ Result: ## unbin {#unbinstr} -Performs the opposite operation of [bin](#bin). It interprets each pair of binary digits (in the argument) as a number and converts it to the byte represented by the number. The return value is a binary string (BLOB). - -If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) functions. - -!!! note "Note" - If `unbin` is invoked from within the `clickhouse-client`, binary strings display using UTF-8. - -Alias: `UNBIN`. +Interprets each pair of binary digits (in the argument) as a number and converts it to the byte represented by the number. The return value is a binary string (BLOB). The functions performs the opposite operation of [bin](#bin). **Syntax** @@ -299,19 +292,26 @@ Alias: `UNBIN`. unbin(arg) ``` -**Arguments** +Alias: `UNBIN`. -- `arg` — A string containing any number of binary digits. Type: [String](../../sql-reference/data-types/string.md). +If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) functions. + +!!! note "Note" + If `unbin` is invoked from within the `clickhouse-client`, binary strings display using UTF-8. Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isn’t thrown). For a numeric argument the inverse of bin(N) is not performed by unbin(). +**Arguments** + +- `arg` — A string containing any number of binary digits. [String](../../sql-reference/data-types/string.md). + **Returned value** - A binary string (BLOB). Type: [String](../../sql-reference/data-types/string.md). -**Example** +**Examples** Query: @@ -330,14 +330,14 @@ Result: Query: ``` sql -SELECT reinterpretAsUInt64(reverse(unbin('1010'))) AS num; +SELECT reinterpretAsUInt64(reverse(unbin('1110'))) AS num; ``` Result: ``` text ┌─num─┐ -│ 10 │ +│ 14 │ └─────┘ ``` From c3d9ba7fa2d8f15fffc6b9fa4280edf344ca36bf Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Thu, 26 Aug 2021 11:24:22 +0000 Subject: [PATCH 02/28] Update bin/unbin functions RU - draft --- .../functions/encoding-functions.md | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 161c1304b7c..95fb8a3e25f 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -208,6 +208,128 @@ SELECT reinterpretAsUInt64(reverse(unhex('FFF'))) AS num; └──────┘ ``` +## bin {#bin} + +**Синтаксис** + +``` sql +bin(arg) +``` + +Алиас: `BIN`. + + +**Аргументы** + +- `arg` — + +**Возвращаемое значение** + +- Бинарная строка (BLOB). + +Тип: [String](../../sql-reference/data-types/string.md). + +**Примеры** + +Запрос: + +``` sql +SELECT bin(14); +``` + +Результат: + +``` text +┌─bin(14)──┐ +│ 00001110 │ +└──────────┘ +``` + +Запрос: + +``` sql +SELECT bin(toFloat32(number)) AS bin_presentation FROM numbers(15, 2); +``` + +Результат: + +``` text +┌─bin_presentation─────────────────┐ +│ 00000000000000000111000001000001 │ +│ 00000000000000001000000001000001 │ +└──────────────────────────────────┘ +``` + +Запрос: + +``` sql +SELECT bin(toFloat64(number)) AS bin_presentation FROM numbers(15, 2); +``` + +Результат: + +``` text +┌─bin_presentation─────────────────────────────────────────────────┐ +│ 0000000000000000000000000000000000000000000000000010111001000000 │ +│ 0000000000000000000000000000000000000000000000000011000001000000 │ +└──────────────────────────────────────────────────────────────────┘ +``` + +## unbin {#unbinstr} + + +**Синтаксис** + +``` sql +unbin(arg) +``` + +Алиас: `UNBIN`. + +**Аргументы** + +- `arg` — + +**Возвращаемое значение** + +- Бинарная строка (BLOB). + +Тип: [String](../../sql-reference/data-types/string.md). + + +**Примеры** + +Запрос: + +``` sql +SELECT UNBIN('001100000011000100110010'), UNBIN('0100110101111001010100110101000101001100'); +``` + +Результат: + +``` text +┌─unbin('001100000011000100110010')─┬─unbin('0100110101111001010100110101000101001100')─┐ +│ 012 │ MySQL │ +└───────────────────────────────────┴───────────────────────────────────────────────────┘ +``` + +Запрос: + +``` sql +SELECT reinterpretAsUInt64(reverse(unbin('1110'))) AS num; +``` + +Результат: + +``` text +┌─num─┐ +│ 14 │ +└─────┘ +``` + + + + ## UUIDStringToNum(str) {#uuidstringtonumstr} Принимает строку, содержащую 36 символов в формате `123e4567-e89b-12d3-a456-426655440000`, и возвращает в виде набора байт в FixedString(16). From 3a0baf0c81872f0eb1410df3229ee1e893901849 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Thu, 26 Aug 2021 12:19:47 +0000 Subject: [PATCH 03/28] Update Unit tests RU. --- docs/en/development/tests.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/en/development/tests.md b/docs/en/development/tests.md index c7c0ec88be4..776843e53a6 100644 --- a/docs/en/development/tests.md +++ b/docs/en/development/tests.md @@ -66,13 +66,21 @@ See `tests/integration/README.md` on how to run these tests. Note that integration of ClickHouse with third-party drivers is not tested. Also, we currently do not have integration tests with our JDBC and ODBC drivers. -## Unit Tests {#unit-tests} +## Модульные тесты {#unit-tests} -Unit tests are useful when you want to test not the ClickHouse as a whole, but a single isolated library or class. You can enable or disable build of tests with `ENABLE_TESTS` CMake option. Unit tests (and other test programs) are located in `tests` subdirectories across the code. To run unit tests, type `ninja test`. Some tests use `gtest`, but some are just programs that return non-zero exit code on test failure. +Модульные тесты полезны, когда вы хотите протестировать не ClickHouse в целом, а отдельную изолированную библиотеку или класс. Вы можете включить или отключить выполнение тестов при сборке с помощью опции CMake `ENABLE_TESTS`. Модульные тесты (как и другие тестовые программы) расположены в подкаталогах `tests` по всему репозиторию. -It’s not necessary to have unit tests if the code is already covered by functional tests (and functional tests are usually much more simple to use). +Чтобы запустить модульные тесты введите: -You can run individual gtest checks by calling the executable directly, for example: +```bash +ninja test +``` + +Некоторые тесты используют `gtest`, но некоторые из них — это просто программы, которые возвращают ненулевой код выхода при сбое теста. + +Нет необходимости в модульных тестах, если код уже охвачен функциональными тестами (ведь функциональные тесты обычно намного проще в использовании). + +Вы можете запускать отдельные проверки `gtest`, вызвав исполняемый файл напрямую, например: ```bash $ ./src/unit_tests_dbms --gtest_filter=LocalAddress* From ff0f049af217fcd04716d7286962e0909e53ad03 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Mon, 30 Aug 2021 09:15:31 +0000 Subject: [PATCH 04/28] revert tests.md --- docs/en/development/tests.md | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/docs/en/development/tests.md b/docs/en/development/tests.md index 776843e53a6..c7c0ec88be4 100644 --- a/docs/en/development/tests.md +++ b/docs/en/development/tests.md @@ -66,21 +66,13 @@ See `tests/integration/README.md` on how to run these tests. Note that integration of ClickHouse with third-party drivers is not tested. Also, we currently do not have integration tests with our JDBC and ODBC drivers. -## Модульные тесты {#unit-tests} +## Unit Tests {#unit-tests} -Модульные тесты полезны, когда вы хотите протестировать не ClickHouse в целом, а отдельную изолированную библиотеку или класс. Вы можете включить или отключить выполнение тестов при сборке с помощью опции CMake `ENABLE_TESTS`. Модульные тесты (как и другие тестовые программы) расположены в подкаталогах `tests` по всему репозиторию. +Unit tests are useful when you want to test not the ClickHouse as a whole, but a single isolated library or class. You can enable or disable build of tests with `ENABLE_TESTS` CMake option. Unit tests (and other test programs) are located in `tests` subdirectories across the code. To run unit tests, type `ninja test`. Some tests use `gtest`, but some are just programs that return non-zero exit code on test failure. -Чтобы запустить модульные тесты введите: +It’s not necessary to have unit tests if the code is already covered by functional tests (and functional tests are usually much more simple to use). -```bash -ninja test -``` - -Некоторые тесты используют `gtest`, но некоторые из них — это просто программы, которые возвращают ненулевой код выхода при сбое теста. - -Нет необходимости в модульных тестах, если код уже охвачен функциональными тестами (ведь функциональные тесты обычно намного проще в использовании). - -Вы можете запускать отдельные проверки `gtest`, вызвав исполняемый файл напрямую, например: +You can run individual gtest checks by calling the executable directly, for example: ```bash $ ./src/unit_tests_dbms --gtest_filter=LocalAddress* From 61091395cd476a6594970de9415f827459f7022a Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Mon, 30 Aug 2021 13:35:27 +0000 Subject: [PATCH 05/28] Update bin/unbin --- .../functions/encoding-functions.md | 6 ++--- .../functions/encoding-functions.md | 24 +++++++++++++++++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 6fd98510b3a..f34bd1aaf35 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -220,7 +220,7 @@ Alias: `BIN`. For integer arguments, it prints bin digits from the most significant to least significant (big-endian or “human-readable” order). It starts with the most significant non-zero byte (leading zero bytes are omitted) but always prints eight digits of every byte if the leading digit is zero. -Values of type `Date` and `DateTime` are formatted as corresponding integers (the number of days since Epoch for Date and the value of Unix Timestamp for DateTime). +Values of type [Date](../../sql-reference/data-types/date.md) and [DateTime](../../sql-reference/data-types/datetime.md) are formatted as corresponding integers (the number of days since Epoch for `Date` and the value of Unix Timestamp for `DateTime`). For `String` and `FixedString`, all bytes are simply encoded as eight binary numbers. Zero bytes are not omitted. @@ -284,7 +284,7 @@ Result: ## unbin {#unbinstr} -Interprets each pair of binary digits (in the argument) as a number and converts it to the byte represented by the number. The return value is a binary string (BLOB). The functions performs the opposite operation of [bin](#bin). +Interprets each pair of binary digits (in the argument) as a number and converts it to the byte represented by the number. The functions performs the opposite operation of [bin](#bin). **Syntax** @@ -299,7 +299,7 @@ If you want to convert the result to a number, you can use the [reverse](../../s !!! note "Note" If `unbin` is invoked from within the `clickhouse-client`, binary strings display using UTF-8. -Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isn’t thrown). For a numeric argument the inverse of bin(N) is not performed by unbin(). +Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isn’t thrown). For a numeric argument the inverse of `bin(N)` is not performed by `unbin()`. **Arguments** diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 95fb8a3e25f..b041804b5f4 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -210,6 +210,8 @@ SELECT reinterpretAsUInt64(reverse(unhex('FFF'))) AS num; ## bin {#bin} +Возвращает строку, содержащую бинарное представление аргумента. + **Синтаксис** ``` sql @@ -218,14 +220,24 @@ bin(arg) Алиас: `BIN`. +Для целочисленных аргументов возвращаются двоичные числа от наиболее значимого до наименее значимого (`big-endian` или в понятном человеку порядке). Порядок начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда возвращает восемь цифр каждого байта, если начальная цифра равна нулю. + +Значения типа [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md) форматируются как соответствующие целые числа (количество дней с момента unix-эпохи для `Date` и значение Unix Timestamp для `DateTime`). + +Для `String` и `FixedString` все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены. + +Значения `floating-point` and `Decimal` кодируются как их представление в памяти. Поскольку мы поддерживаем архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. + + + **Аргументы** -- `arg` — +- `arg` — значение для преобразования в двоичный код. [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) или [DateTime](../../sql-reference/data-types/datetime.md). **Возвращаемое значение** -- Бинарная строка (BLOB). +- Бинарная строка (BLOB) — двоичное представление аргумента. Тип: [String](../../sql-reference/data-types/string.md). @@ -277,6 +289,7 @@ SELECT bin(toFloat64(number)) AS bin_presentation FROM numbers(15, 2); ## unbin {#unbinstr} +Интерпретирует каждую пару двоичных цифр аргумента как число и преобразует его в байт, представленный числом. Функция выполняет операцию, противоположную [bin](#bin). **Синтаксис** @@ -286,6 +299,13 @@ unbin(arg) Алиас: `UNBIN`. +Если вы хотите преобразовать результат в число, вы можете использовать [reverse](../../sql-reference/functions/string-functions.md#reverse)и [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) функции. + +!!! note "Note" + Если `unbin` вызывается из клиента `clickhouse-client`, бинарная строка возвращается в кодировке UTF-8. + +Поддерживает двоичные цифры `0-1`. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает). Для числового аргумента обратное значение bin(N), функцией unbin() не выполняется. + **Аргументы** - `arg` — From 2ce6d2760f8ce28dddb8189a1925500b7cfb62ff Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Mon, 30 Aug 2021 14:10:13 +0000 Subject: [PATCH 06/28] Update bin/unbin --- .../functions/encoding-functions.md | 6 +++--- .../functions/encoding-functions.md | 18 ++++++------------ 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index f34bd1aaf35..40402126587 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -222,13 +222,13 @@ For integer arguments, it prints bin digits from the most significant to least s Values of type [Date](../../sql-reference/data-types/date.md) and [DateTime](../../sql-reference/data-types/datetime.md) are formatted as corresponding integers (the number of days since Epoch for `Date` and the value of Unix Timestamp for `DateTime`). -For `String` and `FixedString`, all bytes are simply encoded as eight binary numbers. Zero bytes are not omitted. +For [String](../../sql-reference/data-types/string.md) and [FixedString](../../sql-reference/data-types/fixedstring.md), all bytes are simply encoded as eight binary numbers. Zero bytes are not omitted. -Values of `floating-point` and `Decimal` types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. +Values of [Float](../../sql-reference/data-types/float) and [Decimal](../../sql-reference/data-types/decimal.md) types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. **Arguments** -- `arg` — A value to convert to binary. [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md), or [DateTime](../../sql-reference/data-types/datetime.md). +- `arg` — A value to convert to binary. [String](../../sql-reference/data-types/string.md), [FixedString](../../sql-reference/data-types/fixedstring.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md), or [DateTime](../../sql-reference/data-types/datetime.md). **Returned value** diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index b041804b5f4..c67a8d7c23c 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -224,16 +224,13 @@ bin(arg) Значения типа [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md) форматируются как соответствующие целые числа (количество дней с момента unix-эпохи для `Date` и значение Unix Timestamp для `DateTime`). -Для `String` и `FixedString` все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены. - -Значения `floating-point` and `Decimal` кодируются как их представление в памяти. Поскольку мы поддерживаем архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. - - +Для [String](../../sql-reference/data-types/string.md) и [FixedString](../../sql-reference/data-types/fixedstring.md) все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены. +Значения [Float](../../sql-reference/data-types/float) and [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку мы поддерживаем архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. **Аргументы** -- `arg` — значение для преобразования в двоичный код. [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) или [DateTime](../../sql-reference/data-types/datetime.md). +- `arg` — значение для преобразования в двоичный код. [String](../../sql-reference/data-types/string.md), [FixedString](../../sql-reference/data-types/fixedstring.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) или [DateTime](../../sql-reference/data-types/datetime.md). **Возвращаемое значение** @@ -301,14 +298,14 @@ unbin(arg) Если вы хотите преобразовать результат в число, вы можете использовать [reverse](../../sql-reference/functions/string-functions.md#reverse)и [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) функции. -!!! note "Note" +!!! note "Примечание" Если `unbin` вызывается из клиента `clickhouse-client`, бинарная строка возвращается в кодировке UTF-8. -Поддерживает двоичные цифры `0-1`. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает). Для числового аргумента обратное значение bin(N), функцией unbin() не выполняется. +Поддерживает двоичные цифры `0-1`. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает). Для числового аргумента обратное значение `bin(N)`, функцией `unbin()` не выполняется. **Аргументы** -- `arg` — +- `arg` — строка, содержащая любое количество двоичных цифр. [String](../../sql-reference/data-types/string.md). **Возвращаемое значение** @@ -347,9 +344,6 @@ SELECT reinterpretAsUInt64(reverse(unbin('1110'))) AS num; └─────┘ ``` - - - ## UUIDStringToNum(str) {#uuidstringtonumstr} Принимает строку, содержащую 36 символов в формате `123e4567-e89b-12d3-a456-426655440000`, и возвращает в виде набора байт в FixedString(16). From c54bf838b0fab6b7dead4fd2be0f4b613b12fc51 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Mon, 30 Aug 2021 14:17:20 +0000 Subject: [PATCH 07/28] Update bin/unbin --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index c67a8d7c23c..259a0e6c7cf 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -17,7 +17,7 @@ char(number_1, [number_2, ..., number_n]); **Аргументы** -- `number_1, number_2, ..., number_n` — числовые аргументы, которые интерпретируются как целые числа. Типы: [Int](../../sql-reference/functions/encoding-functions.md), [Float](../../sql-reference/functions/encoding-functions.md). +- `number_1, number_2, ..., number_n` — числовые аргументы, которые интерпретируются как целые числа. Типы: [Int](../../sql-reference/functions/encoding-functions.md), [Float](../../sql-reference/data-types/float.md). **Возвращаемое значение** From 4feafb43889b022c216617b96456bc3a7c6e45ad Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:32:06 +0300 Subject: [PATCH 08/28] Update docs/ru/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 259a0e6c7cf..207a2f63737 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -17,7 +17,7 @@ char(number_1, [number_2, ..., number_n]); **Аргументы** -- `number_1, number_2, ..., number_n` — числовые аргументы, которые интерпретируются как целые числа. Типы: [Int](../../sql-reference/functions/encoding-functions.md), [Float](../../sql-reference/data-types/float.md). +- `number_1, number_2, ..., number_n` — числовые аргументы, которые интерпретируются как целые числа. Типы: [Int](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md). **Возвращаемое значение** From 3553ae3e13db70461eed73a532024db29d9e8ced Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:32:25 +0300 Subject: [PATCH 09/28] Update docs/ru/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 207a2f63737..7b3b67533d1 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -226,7 +226,7 @@ bin(arg) Для [String](../../sql-reference/data-types/string.md) и [FixedString](../../sql-reference/data-types/fixedstring.md) все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены. -Значения [Float](../../sql-reference/data-types/float) and [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку мы поддерживаем архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. +Значения [Float](../../sql-reference/data-types/float) и [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. **Аргументы** From 78d2bfeada1107cd112e27b28aff471a2b8910b3 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:33:45 +0300 Subject: [PATCH 10/28] Update docs/ru/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 7b3b67533d1..c125b8ec6c7 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -296,7 +296,7 @@ unbin(arg) Алиас: `UNBIN`. -Если вы хотите преобразовать результат в число, вы можете использовать [reverse](../../sql-reference/functions/string-functions.md#reverse)и [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) функции. +Для числового аргумента `unbin()` не возвращает значение, обратное результату `bin()`. Чтобы преобразовать результат в число, используйте функции [reverse](../../sql-reference/functions/string-functions.md#reverse) и [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#reinterpretasuint8163264). !!! note "Примечание" Если `unbin` вызывается из клиента `clickhouse-client`, бинарная строка возвращается в кодировке UTF-8. From 952b993afe744e529ea4dd018cde01f81c2a36e2 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:33:54 +0300 Subject: [PATCH 11/28] Update docs/ru/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index c125b8ec6c7..b9bd61ad891 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -301,7 +301,7 @@ unbin(arg) !!! note "Примечание" Если `unbin` вызывается из клиента `clickhouse-client`, бинарная строка возвращается в кодировке UTF-8. -Поддерживает двоичные цифры `0-1`. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает). Для числового аргумента обратное значение `bin(N)`, функцией `unbin()` не выполняется. +Поддерживает двоичные цифры `0-1`. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает). **Аргументы** From e0c643777ef1ea93deec8b997962e37558d07c54 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:34:05 +0300 Subject: [PATCH 12/28] Update docs/ru/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index b9bd61ad891..7917c98567b 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -222,7 +222,7 @@ bin(arg) Для целочисленных аргументов возвращаются двоичные числа от наиболее значимого до наименее значимого (`big-endian` или в понятном человеку порядке). Порядок начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда возвращает восемь цифр каждого байта, если начальная цифра равна нулю. -Значения типа [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md) форматируются как соответствующие целые числа (количество дней с момента unix-эпохи для `Date` и значение Unix Timestamp для `DateTime`). +Значения типа [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md) формируются как соответствующие целые числа (количество дней с момента Unix-эпохи для `Date` и значение Unix Timestamp для `DateTime`). Для [String](../../sql-reference/data-types/string.md) и [FixedString](../../sql-reference/data-types/fixedstring.md) все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены. From 5bbeb0e9354953bf61c6afa9ed905aad601c7e60 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:34:11 +0300 Subject: [PATCH 13/28] Update docs/en/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 40402126587..450c2bb18c4 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -294,7 +294,7 @@ unbin(arg) Alias: `UNBIN`. -If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) functions. +For a numeric argument `unbin()` does not return the inverse of `bin()`. If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) functions. !!! note "Note" If `unbin` is invoked from within the `clickhouse-client`, binary strings display using UTF-8. From 36e54621420aa70b306435a7e5a25f96903c4234 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:34:18 +0300 Subject: [PATCH 14/28] Update docs/en/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 450c2bb18c4..f780f5ed9c7 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -299,7 +299,7 @@ For a numeric argument `unbin()` does not return the inverse of `bin()`. If you !!! note "Note" If `unbin` is invoked from within the `clickhouse-client`, binary strings display using UTF-8. -Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isn’t thrown). For a numeric argument the inverse of `bin(N)` is not performed by `unbin()`. +Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isn’t thrown). **Arguments** From 43529c4e094b323c849a44a75a34df2b939255c5 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:34:25 +0300 Subject: [PATCH 15/28] Update docs/en/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index f780f5ed9c7..163cf9fd597 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -284,7 +284,7 @@ Result: ## unbin {#unbinstr} -Interprets each pair of binary digits (in the argument) as a number and converts it to the byte represented by the number. The functions performs the opposite operation of [bin](#bin). +Interprets each pair of binary digits (in the argument) as a number and converts it to the byte represented by the number. The functions performs the opposite operation to [bin](#bin). **Syntax** From ff5f5e9f77156c3a0480d3fe4dcee6bd99a28236 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 09:34:32 +0300 Subject: [PATCH 16/28] Update docs/en/sql-reference/functions/encoding-functions.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 163cf9fd597..3bb1211d08f 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -297,7 +297,7 @@ Alias: `UNBIN`. For a numeric argument `unbin()` does not return the inverse of `bin()`. If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) functions. !!! note "Note" - If `unbin` is invoked from within the `clickhouse-client`, binary strings display using UTF-8. + If `unbin` is invoked from within the `clickhouse-client`, binary strings are displayed using UTF-8. Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isn’t thrown). From b7d647d74b67db15595bd193499ecd9422fcfa68 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Tue, 31 Aug 2021 06:45:22 +0000 Subject: [PATCH 17/28] Fix PR comments. --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 3bb1211d08f..a9238d69fb2 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -294,7 +294,7 @@ unbin(arg) Alias: `UNBIN`. -For a numeric argument `unbin()` does not return the inverse of `bin()`. If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) functions. +For a numeric argument `unbin()` does not return the inverse of `bin()`. If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions.md#reinterpretasuint8163264) functions. !!! note "Note" If `unbin` is invoked from within the `clickhouse-client`, binary strings are displayed using UTF-8. From 7c3a37ee375e86a371894b13f78b6ad55cd5023f Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Tue, 31 Aug 2021 07:25:05 +0000 Subject: [PATCH 18/28] Fix PR comments. --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- docs/ru/sql-reference/functions/encoding-functions.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index a9238d69fb2..2ef0fda437d 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -224,7 +224,7 @@ Values of type [Date](../../sql-reference/data-types/date.md) and [DateTime](../ For [String](../../sql-reference/data-types/string.md) and [FixedString](../../sql-reference/data-types/fixedstring.md), all bytes are simply encoded as eight binary numbers. Zero bytes are not omitted. -Values of [Float](../../sql-reference/data-types/float) and [Decimal](../../sql-reference/data-types/decimal.md) types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. +Values of [Float](../../sql-reference/data-types/float.md) and [Decimal](../../sql-reference/data-types/decimal.md) types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. **Arguments** diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 7917c98567b..3a05b461323 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -111,7 +111,7 @@ Values of floating point and Decimal types are encoded as their representation i **Parameters** -- `arg` — A value to convert to hexadecimal. Types: [String](../../sql-reference/functions/encoding-functions.md), [UInt](../../sql-reference/functions/encoding-functions.md), [Float](../../sql-reference/functions/encoding-functions.md), [Decimal](../../sql-reference/functions/encoding-functions.md), [Date](../../sql-reference/functions/encoding-functions.md) or [DateTime](../../sql-reference/functions/encoding-functions.md). +- `arg` — A value to convert to hexadecimal. Types: [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) or [DateTime](../../sql-reference/data-types/datetime.md). **Returned value** @@ -226,7 +226,7 @@ bin(arg) Для [String](../../sql-reference/data-types/string.md) и [FixedString](../../sql-reference/data-types/fixedstring.md) все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены. -Значения [Float](../../sql-reference/data-types/float) и [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. +Значения [Float](../../sql-reference/data-types/float.md) и [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. **Аргументы** From 981fdadaa6ca96b84e06d7af7d579895aa98011f Mon Sep 17 00:00:00 2001 From: romanzhukov Date: Tue, 31 Aug 2021 14:24:56 +0300 Subject: [PATCH 19/28] Fix links errors. --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index a9238d69fb2..2ef0fda437d 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -224,7 +224,7 @@ Values of type [Date](../../sql-reference/data-types/date.md) and [DateTime](../ For [String](../../sql-reference/data-types/string.md) and [FixedString](../../sql-reference/data-types/fixedstring.md), all bytes are simply encoded as eight binary numbers. Zero bytes are not omitted. -Values of [Float](../../sql-reference/data-types/float) and [Decimal](../../sql-reference/data-types/decimal.md) types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. +Values of [Float](../../sql-reference/data-types/float.md) and [Decimal](../../sql-reference/data-types/decimal.md) types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. **Arguments** diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 7917c98567b..c5ac4e3eace 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -226,7 +226,7 @@ bin(arg) Для [String](../../sql-reference/data-types/string.md) и [FixedString](../../sql-reference/data-types/fixedstring.md) все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены. -Значения [Float](../../sql-reference/data-types/float) и [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. +Значения [Float](../../sql-reference/data-types/float.md) и [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. **Аргументы** From 1b00ec99a9d6e668972c4e19685bf566c43a07f0 Mon Sep 17 00:00:00 2001 From: Roman Bug Date: Tue, 31 Aug 2021 15:42:10 +0300 Subject: [PATCH 20/28] Update docs/ru/sql-reference/functions/encoding-functions.md Co-authored-by: Alexey Boykov <33257111+mathalex@users.noreply.github.com> --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 3a05b461323..64c46d6bc50 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -226,7 +226,7 @@ bin(arg) Для [String](../../sql-reference/data-types/string.md) и [FixedString](../../sql-reference/data-types/fixedstring.md) все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены. -Значения [Float](../../sql-reference/data-types/float.md) и [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены. +Значения [Float](../../sql-reference/data-types/float.md) и [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные/конечные байты не опущены. **Аргументы** From 2cea77c39594b9ade9343991c373874b23ca16c3 Mon Sep 17 00:00:00 2001 From: romanzhukov Date: Tue, 31 Aug 2021 16:54:41 +0300 Subject: [PATCH 21/28] Fix PR comment. --- .../functions/encoding-functions.md | 57 +++++++++---------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 64c46d6bc50..23d2424f79f 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -73,7 +73,7 @@ SELECT char(0xE4, 0xBD, 0xA0, 0xE5, 0xA5, 0xBD) AS hello; ## hex {#hex} -Returns a string containing the argument’s hexadecimal representation. +Возвращает строку, содержащую шестнадцатеричное представление аргумента. Синоним: `HEX`. @@ -83,25 +83,10 @@ Returns a string containing the argument’s hexadecimal representation. hex(arg) ``` -The function is using uppercase letters `A-F` and not using any prefixes (like `0x`) or suffixes (like `h`). +Функция использует прописные буквы `A-F` и не использует никаких префиксов (например, `0x`) или суффиксов (например, `h`). -For integer arguments, it prints hex digits («nibbles») from the most significant to least significant (big endian or «human readable» order). It starts with the most significant non-zero byte (leading zero bytes are omitted) but always prints both digits of every byte even if leading digit is zero. +Для целочисленных аргументов возвращает шестнадцатеричные цифры ("кусочки") от наиболее значимых до наименее значимых (`big endian` или в порядке, понятному человеку).Он начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда выводит обе цифры каждого байта, даже если начальная цифра равна нулю. -Example: - -**Example** - -Query: - -``` sql -SELECT hex(1); -``` - -Result: - -``` text -01 -``` Values of type `Date` and `DateTime` are formatted as corresponding integers (the number of days since Epoch for Date and the value of Unix Timestamp for DateTime). @@ -109,25 +94,37 @@ For `String` and `FixedString`, all bytes are simply encoded as two hexadecimal Values of floating point and Decimal types are encoded as their representation in memory. As we support little endian architecture, they are encoded in little endian. Zero leading/trailing bytes are not omitted. -**Parameters** +**Аргументы** -- `arg` — A value to convert to hexadecimal. Types: [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) or [DateTime](../../sql-reference/data-types/datetime.md). +- `arg` — значение для преобразования в шестнадцатеричное. [String](../../sql-reference/functions/encoding-functions.md), [UInt](../../sql-reference/functions/encoding-functions.md), [Float](../../sql-reference/functions/encoding-functions.md), [Decimal](../../sql-reference/functions/encoding-functions.md), [Date](../../sql-reference/functions/encoding-functions.md) или [DateTime](../../sql-reference/functions/encoding-functions.md). -**Returned value** +**Возвращаемое значение** -- A string with the hexadecimal representation of the argument. +- Строка — шестнадцатеричное представление аргумента. -Type: `String`. +Тип: [String](../../sql-reference/functions/encoding-functions.md). -**Example** +**Примеры** -Query: +Запрос: ``` sql -SELECT hex(toFloat32(number)) as hex_presentation FROM numbers(15, 2); +SELECT hex(1); ``` -Result: +Результат: + +``` text +01 +``` + +Запрос: + +``` sql +SELECT hex(toFloat32(number)) AS hex_presentation FROM numbers(15, 2); +``` + +Результат: ``` text ┌─hex_presentation─┐ @@ -136,13 +133,13 @@ Result: └──────────────────┘ ``` -Query: +Запрос: ``` sql -SELECT hex(toFloat64(number)) as hex_presentation FROM numbers(15, 2); +SELECT hex(toFloat64(number)) AS hex_presentation FROM numbers(15, 2); ``` -Result: +Результат: ``` text ┌─hex_presentation─┐ From 42483d31b79e5da26dad429c74e2c6e653c60a2c Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Wed, 1 Sep 2021 13:53:12 +0000 Subject: [PATCH 22/28] Fix PR comments. --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 23d2424f79f..2671bfb533d 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -96,7 +96,7 @@ Values of floating point and Decimal types are encoded as their representation i **Аргументы** -- `arg` — значение для преобразования в шестнадцатеричное. [String](../../sql-reference/functions/encoding-functions.md), [UInt](../../sql-reference/functions/encoding-functions.md), [Float](../../sql-reference/functions/encoding-functions.md), [Decimal](../../sql-reference/functions/encoding-functions.md), [Date](../../sql-reference/functions/encoding-functions.md) или [DateTime](../../sql-reference/functions/encoding-functions.md). +- `arg` — значение для преобразования в шестнадцатеричное. [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) или [DateTime](../../sql-reference/data-types/datetime.md). **Возвращаемое значение** From 0726af6d0c3f7076652ba1a9d0213a567a99c1c4 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Wed, 1 Sep 2021 14:08:34 +0000 Subject: [PATCH 23/28] Fix PR comments. --- .../sql-reference/functions/encoding-functions.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 2671bfb533d..b37c4160558 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -77,7 +77,7 @@ SELECT char(0xE4, 0xBD, 0xA0, 0xE5, 0xA5, 0xBD) AS hello; Синоним: `HEX`. -**Syntax** +**Синтаксис** ``` sql hex(arg) @@ -87,12 +87,11 @@ hex(arg) Для целочисленных аргументов возвращает шестнадцатеричные цифры ("кусочки") от наиболее значимых до наименее значимых (`big endian` или в порядке, понятному человеку).Он начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда выводит обе цифры каждого байта, даже если начальная цифра равна нулю. +Значения типа [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md) формируются как соответствующие целые числа (количество дней с момента Unix-эпохи для `Date` и значение Unix Timestamp для `DateTime`). -Values of type `Date` and `DateTime` are formatted as corresponding integers (the number of days since Epoch for Date and the value of Unix Timestamp for DateTime). +Для [String](../../sql-reference/data-types/string.md) и [FixedString](../../sql-reference/data-types/fixedstring.md), все байты просто кодируются как два шестнадцатеричных числа. Нулевые байты не опущены. -For `String` and `FixedString`, all bytes are simply encoded as two hexadecimal numbers. Zero bytes are not omitted. - -Values of floating point and Decimal types are encoded as their representation in memory. As we support little endian architecture, they are encoded in little endian. Zero leading/trailing bytes are not omitted. +Значения [Float](../../sql-reference/data-types/float.md) и [Decimal](../../sql-reference/data-types/decimal.md) кодируются как их представление в памяти. Поскольку ClickHouse поддерживает архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные/конечные байты не опущены. **Аргументы** @@ -215,7 +214,7 @@ SELECT reinterpretAsUInt64(reverse(unhex('FFF'))) AS num; bin(arg) ``` -Алиас: `BIN`. +Синоним: `BIN`. Для целочисленных аргументов возвращаются двоичные числа от наиболее значимого до наименее значимого (`big-endian` или в понятном человеку порядке). Порядок начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда возвращает восемь цифр каждого байта, если начальная цифра равна нулю. @@ -291,7 +290,7 @@ SELECT bin(toFloat64(number)) AS bin_presentation FROM numbers(15, 2); unbin(arg) ``` -Алиас: `UNBIN`. +Синоним: `UNBIN`. Для числового аргумента `unbin()` не возвращает значение, обратное результату `bin()`. Чтобы преобразовать результат в число, используйте функции [reverse](../../sql-reference/functions/string-functions.md#reverse) и [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#reinterpretasuint8163264). @@ -396,7 +395,7 @@ SELECT bitPositionsToArray(toInt8(1)) AS bit_positions; Запрос: ``` sql -select bitPositionsToArray(toInt8(-1)) as bit_positions; +select bitPositionsToArray(toInt8(-1)) AS bit_positions; ``` Результат: From 248a97201c17879889184c712432aed93519e2e6 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Wed, 1 Sep 2021 14:26:36 +0000 Subject: [PATCH 24/28] Fix PR comments. --- .../functions/encoding-functions.md | 42 +++++++++---------- .../functions/encoding-functions.md | 3 +- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 2ef0fda437d..0fccbb5cc09 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -87,7 +87,23 @@ The function is using uppercase letters `A-F` and not using any prefixes (like ` For integer arguments, it prints hex digits (“nibbles”) from the most significant to least significant (big-endian or “human-readable” order). It starts with the most significant non-zero byte (leading zero bytes are omitted) but always prints both digits of every byte even if the leading digit is zero. -**Example** +Values of type [Date](../../sql-reference/data-types/date.md) and [DateTime](../../sql-reference/data-types/datetime.md) are formatted as corresponding integers (the number of days since Epoch for Date and the value of Unix Timestamp for DateTime). + +For [String](../../sql-reference/data-types/string.md) and [FixedString](../../sql-reference/data-types/fixedstring.md), all bytes are simply encoded as two hexadecimal numbers. Zero bytes are not omitted. + +Values of [Float](../../sql-reference/data-types/float.md) and [Decimal](../../sql-reference/data-types/decimal.md) types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. + +**Arguments** + +- `arg` — A value to convert to hexadecimal. Types: [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) or [DateTime](../../sql-reference/data-types/datetime.md). + +**Returned value** + +- A string with the hexadecimal representation of the argument. + +Type: [String](../../sql-reference/data-types/string.md). + +**Examples** Query: @@ -101,28 +117,10 @@ Result: 01 ``` -Values of type `Date` and `DateTime` are formatted as corresponding integers (the number of days since Epoch for Date and the value of Unix Timestamp for DateTime). - -For `String` and `FixedString`, all bytes are simply encoded as two hexadecimal numbers. Zero bytes are not omitted. - -Values of floating point and Decimal types are encoded as their representation in memory. As we support little-endian architecture, they are encoded in little-endian. Zero leading/trailing bytes are not omitted. - -**Arguments** - -- `arg` — A value to convert to hexadecimal. Types: [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) or [DateTime](../../sql-reference/data-types/datetime.md). - -**Returned value** - -- A string with the hexadecimal representation of the argument. - -Type: `String`. - -**Example** - Query: ``` sql -SELECT hex(toFloat32(number)) as hex_presentation FROM numbers(15, 2); +SELECT hex(toFloat32(number)) AS hex_presentation FROM numbers(15, 2); ``` Result: @@ -137,7 +135,7 @@ Result: Query: ``` sql -SELECT hex(toFloat64(number)) as hex_presentation FROM numbers(15, 2); +SELECT hex(toFloat64(number)) AS hex_presentation FROM numbers(15, 2); ``` Result: @@ -396,7 +394,7 @@ Result: Query: ``` sql -select bitPositionsToArray(toInt8(-1)) as bit_positions; +SELECT bitPositionsToArray(toInt8(-1)) AS bit_positions; ``` Result: diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index b37c4160558..b0ba81aec06 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -309,7 +309,6 @@ unbin(arg) Тип: [String](../../sql-reference/data-types/string.md). - **Примеры** Запрос: @@ -395,7 +394,7 @@ SELECT bitPositionsToArray(toInt8(1)) AS bit_positions; Запрос: ``` sql -select bitPositionsToArray(toInt8(-1)) AS bit_positions; +SELECT bitPositionsToArray(toInt8(-1)) AS bit_positions; ``` Результат: From cce799d9b54a6a2f573fb65ff57db2c99f503055 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Wed, 1 Sep 2021 14:28:23 +0000 Subject: [PATCH 25/28] Fix PR comments. --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index b0ba81aec06..b0db509a797 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -101,7 +101,7 @@ hex(arg) - Строка — шестнадцатеричное представление аргумента. -Тип: [String](../../sql-reference/functions/encoding-functions.md). +Тип: [String](../../sql-reference/data-types/string.md). **Примеры** From 81a3ee6584c4c3ab1066b469991c9435ea0157d3 Mon Sep 17 00:00:00 2001 From: Roman Zhukov Date: Wed, 1 Sep 2021 14:41:05 +0000 Subject: [PATCH 26/28] Fix PR comments. --- docs/ru/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index b0db509a797..ad3aa8d87e6 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -23,7 +23,7 @@ char(number_1, [number_2, ..., number_n]); - Строка из соответствующих байт. -Тип: `String`. +Тип: [String](../../sql-reference/data-types/string.md). **Пример** From f0414ed7f9f00ab23621c121ab86de21fc3f714d Mon Sep 17 00:00:00 2001 From: romanzhukov Date: Wed, 1 Sep 2021 21:05:22 +0300 Subject: [PATCH 27/28] Fix err arg. --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 0fccbb5cc09..0abf7bb7da9 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -292,7 +292,7 @@ unbin(arg) Alias: `UNBIN`. -For a numeric argument `unbin()` does not return the inverse of `bin()`. If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions.md#reinterpretasuint8163264) functions. +For a numeric argument `unbin()` does not return the inverse of `bin()`. If you want to convert the result to a number, you can use the [reverse](../../sql-reference/functions/string-functions.md#reverse) and [reinterpretAs](../../sql-reference/functions/type-conversion-functions.md#reinterpretasuint8163264) functions. !!! note "Note" If `unbin` is invoked from within the `clickhouse-client`, binary strings are displayed using UTF-8. From a581603964d25b78ae1140d8d2b694408dd40e84 Mon Sep 17 00:00:00 2001 From: Vladimir C Date: Sat, 11 Sep 2021 10:46:55 +0300 Subject: [PATCH 28/28] Apply suggestions from code review --- docs/en/sql-reference/functions/encoding-functions.md | 2 +- docs/ru/sql-reference/functions/encoding-functions.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 0abf7bb7da9..69dd14da1bf 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -297,7 +297,7 @@ For a numeric argument `unbin()` does not return the inverse of `bin()`. If you !!! note "Note" If `unbin` is invoked from within the `clickhouse-client`, binary strings are displayed using UTF-8. -Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isn’t thrown). +Supports binary digits `0` and `1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isn’t thrown). **Arguments** diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index ad3aa8d87e6..694dfef7d75 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -85,7 +85,7 @@ hex(arg) Функция использует прописные буквы `A-F` и не использует никаких префиксов (например, `0x`) или суффиксов (например, `h`). -Для целочисленных аргументов возвращает шестнадцатеричные цифры ("кусочки") от наиболее значимых до наименее значимых (`big endian` или в порядке, понятному человеку).Он начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда выводит обе цифры каждого байта, даже если начальная цифра равна нулю. +Для целочисленных аргументов возвращает шестнадцатеричные цифры от наиболее до наименее значимых (`big endian`, человекочитаемый порядок).Он начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда выводит обе цифры каждого байта, даже если начальная цифра равна нулю. Значения типа [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md) формируются как соответствующие целые числа (количество дней с момента Unix-эпохи для `Date` и значение Unix Timestamp для `DateTime`). @@ -216,7 +216,7 @@ bin(arg) Синоним: `BIN`. -Для целочисленных аргументов возвращаются двоичные числа от наиболее значимого до наименее значимого (`big-endian` или в понятном человеку порядке). Порядок начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда возвращает восемь цифр каждого байта, если начальная цифра равна нулю. +Для целочисленных аргументов возвращаются двоичные числа от наиболее значимого до наименее значимого (`big-endian`, человекочитаемый порядок). Порядок начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда возвращает восемь цифр каждого байта, если начальная цифра равна нулю. Значения типа [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md) формируются как соответствующие целые числа (количество дней с момента Unix-эпохи для `Date` и значение Unix Timestamp для `DateTime`). @@ -297,7 +297,7 @@ unbin(arg) !!! note "Примечание" Если `unbin` вызывается из клиента `clickhouse-client`, бинарная строка возвращается в кодировке UTF-8. -Поддерживает двоичные цифры `0-1`. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает). +Поддерживает двоичные цифры `0` и `1`. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает). **Аргументы**