mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 07:31:57 +00:00
Merge pull request #23231 from sevirov/sevirov-DOCSUP-8215-add_aliases_to_functions
DOCSUP-8215: Add aliases to functions
This commit is contained in:
commit
2d3b4af67a
@ -16,46 +16,60 @@ The following assumptions are made:
|
|||||||
|
|
||||||
## visitParamHas(params, name) {#visitparamhasparams-name}
|
## visitParamHas(params, name) {#visitparamhasparams-name}
|
||||||
|
|
||||||
Checks whether there is a field with the ‘name’ name.
|
Checks whether there is a field with the `name` name.
|
||||||
|
|
||||||
|
Alias: `simpleJSONHas`.
|
||||||
|
|
||||||
## visitParamExtractUInt(params, name) {#visitparamextractuintparams-name}
|
## visitParamExtractUInt(params, name) {#visitparamextractuintparams-name}
|
||||||
|
|
||||||
Parses UInt64 from the value of the field named ‘name’. If this is a string field, it tries to parse a number from the beginning of the string. If the field doesn’t exist, or it exists but doesn’t contain a number, it returns 0.
|
Parses UInt64 from the value of the field named `name`. If this is a string field, it tries to parse a number from the beginning of the string. If the field doesn’t exist, or it exists but doesn’t contain a number, it returns 0.
|
||||||
|
|
||||||
|
Alias: `simpleJSONExtractUInt`.
|
||||||
|
|
||||||
## visitParamExtractInt(params, name) {#visitparamextractintparams-name}
|
## visitParamExtractInt(params, name) {#visitparamextractintparams-name}
|
||||||
|
|
||||||
The same as for Int64.
|
The same as for Int64.
|
||||||
|
|
||||||
|
Alias: `simpleJSONExtractInt`.
|
||||||
|
|
||||||
## visitParamExtractFloat(params, name) {#visitparamextractfloatparams-name}
|
## visitParamExtractFloat(params, name) {#visitparamextractfloatparams-name}
|
||||||
|
|
||||||
The same as for Float64.
|
The same as for Float64.
|
||||||
|
|
||||||
|
Alias: `simpleJSONExtractFloat`.
|
||||||
|
|
||||||
## visitParamExtractBool(params, name) {#visitparamextractboolparams-name}
|
## visitParamExtractBool(params, name) {#visitparamextractboolparams-name}
|
||||||
|
|
||||||
Parses a true/false value. The result is UInt8.
|
Parses a true/false value. The result is UInt8.
|
||||||
|
|
||||||
|
Alias: `simpleJSONExtractBool`.
|
||||||
|
|
||||||
## visitParamExtractRaw(params, name) {#visitparamextractrawparams-name}
|
## visitParamExtractRaw(params, name) {#visitparamextractrawparams-name}
|
||||||
|
|
||||||
Returns the value of a field, including separators.
|
Returns the value of a field, including separators.
|
||||||
|
|
||||||
|
Alias: `simpleJSONExtractRaw`.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
``` sql
|
``` sql
|
||||||
visitParamExtractRaw('{"abc":"\\n\\u0000"}', 'abc') = '"\\n\\u0000"'
|
visitParamExtractRaw('{"abc":"\\n\\u0000"}', 'abc') = '"\\n\\u0000"';
|
||||||
visitParamExtractRaw('{"abc":{"def":[1,2,3]}}', 'abc') = '{"def":[1,2,3]}'
|
visitParamExtractRaw('{"abc":{"def":[1,2,3]}}', 'abc') = '{"def":[1,2,3]}';
|
||||||
```
|
```
|
||||||
|
|
||||||
## visitParamExtractString(params, name) {#visitparamextractstringparams-name}
|
## visitParamExtractString(params, name) {#visitparamextractstringparams-name}
|
||||||
|
|
||||||
Parses the string in double quotes. The value is unescaped. If unescaping failed, it returns an empty string.
|
Parses the string in double quotes. The value is unescaped. If unescaping failed, it returns an empty string.
|
||||||
|
|
||||||
|
Alias: `simpleJSONExtractString`.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
``` sql
|
``` sql
|
||||||
visitParamExtractString('{"abc":"\\n\\u0000"}', 'abc') = '\n\0'
|
visitParamExtractString('{"abc":"\\n\\u0000"}', 'abc') = '\n\0';
|
||||||
visitParamExtractString('{"abc":"\\u263a"}', 'abc') = '☺'
|
visitParamExtractString('{"abc":"\\u263a"}', 'abc') = '☺';
|
||||||
visitParamExtractString('{"abc":"\\u263"}', 'abc') = ''
|
visitParamExtractString('{"abc":"\\u263"}', 'abc') = '';
|
||||||
visitParamExtractString('{"abc":"hello}', 'abc') = ''
|
visitParamExtractString('{"abc":"hello}', 'abc') = '';
|
||||||
```
|
```
|
||||||
|
|
||||||
There is currently no support for code points in the format `\uXXXX\uYYYY` that are not from the basic multilingual plane (they are converted to CESU-8 instead of UTF-8).
|
There is currently no support for code points in the format `\uXXXX\uYYYY` that are not from the basic multilingual plane (they are converted to CESU-8 instead of UTF-8).
|
||||||
|
@ -16,51 +16,65 @@ toc_title: JSON
|
|||||||
|
|
||||||
## visitParamHas(params, name) {#visitparamhasparams-name}
|
## visitParamHas(params, name) {#visitparamhasparams-name}
|
||||||
|
|
||||||
Проверить наличие поля с именем name.
|
Проверяет наличие поля с именем `name`.
|
||||||
|
|
||||||
|
Алиас: `simpleJSONHas`.
|
||||||
|
|
||||||
## visitParamExtractUInt(params, name) {#visitparamextractuintparams-name}
|
## visitParamExtractUInt(params, name) {#visitparamextractuintparams-name}
|
||||||
|
|
||||||
Распарсить UInt64 из значения поля с именем name. Если поле строковое - попытаться распарсить число из начала строки. Если такого поля нет, или если оно есть, но содержит не число, то вернуть 0.
|
Пытается выделить число типа UInt64 из значения поля с именем `name`. Если поле строковое, пытается выделить число из начала строки. Если такого поля нет, или если оно есть, но содержит не число, то возвращает 0.
|
||||||
|
|
||||||
|
Алиас: `simpleJSONExtractUInt`.
|
||||||
|
|
||||||
## visitParamExtractInt(params, name) {#visitparamextractintparams-name}
|
## visitParamExtractInt(params, name) {#visitparamextractintparams-name}
|
||||||
|
|
||||||
Аналогично для Int64.
|
Аналогично для Int64.
|
||||||
|
|
||||||
|
Алиас: `simpleJSONExtractInt`.
|
||||||
|
|
||||||
## visitParamExtractFloat(params, name) {#visitparamextractfloatparams-name}
|
## visitParamExtractFloat(params, name) {#visitparamextractfloatparams-name}
|
||||||
|
|
||||||
Аналогично для Float64.
|
Аналогично для Float64.
|
||||||
|
|
||||||
|
Алиас: `simpleJSONExtractFloat`.
|
||||||
|
|
||||||
## visitParamExtractBool(params, name) {#visitparamextractboolparams-name}
|
## visitParamExtractBool(params, name) {#visitparamextractboolparams-name}
|
||||||
|
|
||||||
Распарсить значение true/false. Результат - UInt8.
|
Пытается выделить значение true/false. Результат — UInt8.
|
||||||
|
|
||||||
|
Алиас: `simpleJSONExtractBool`.
|
||||||
|
|
||||||
## visitParamExtractRaw(params, name) {#visitparamextractrawparams-name}
|
## visitParamExtractRaw(params, name) {#visitparamextractrawparams-name}
|
||||||
|
|
||||||
Вернуть значение поля, включая разделители.
|
Возвращает значение поля, включая разделители.
|
||||||
|
|
||||||
|
Алиас: `simpleJSONExtractRaw`.
|
||||||
|
|
||||||
Примеры:
|
Примеры:
|
||||||
|
|
||||||
``` sql
|
``` sql
|
||||||
visitParamExtractRaw('{"abc":"\\n\\u0000"}', 'abc') = '"\\n\\u0000"'
|
visitParamExtractRaw('{"abc":"\\n\\u0000"}', 'abc') = '"\\n\\u0000"';
|
||||||
visitParamExtractRaw('{"abc":{"def":[1,2,3]}}', 'abc') = '{"def":[1,2,3]}'
|
visitParamExtractRaw('{"abc":{"def":[1,2,3]}}', 'abc') = '{"def":[1,2,3]}';
|
||||||
```
|
```
|
||||||
|
|
||||||
## visitParamExtractString(params, name) {#visitparamextractstringparams-name}
|
## visitParamExtractString(params, name) {#visitparamextractstringparams-name}
|
||||||
|
|
||||||
Распарсить строку в двойных кавычках. У значения убирается экранирование. Если убрать экранированные символы не удалось, то возвращается пустая строка.
|
Разбирает строку в двойных кавычках. У значения убирается экранирование. Если убрать экранированные символы не удалось, то возвращается пустая строка.
|
||||||
|
|
||||||
|
Алиас: `simpleJSONExtractString`.
|
||||||
|
|
||||||
Примеры:
|
Примеры:
|
||||||
|
|
||||||
``` sql
|
``` sql
|
||||||
visitParamExtractString('{"abc":"\\n\\u0000"}', 'abc') = '\n\0'
|
visitParamExtractString('{"abc":"\\n\\u0000"}', 'abc') = '\n\0';
|
||||||
visitParamExtractString('{"abc":"\\u263a"}', 'abc') = '☺'
|
visitParamExtractString('{"abc":"\\u263a"}', 'abc') = '☺';
|
||||||
visitParamExtractString('{"abc":"\\u263"}', 'abc') = ''
|
visitParamExtractString('{"abc":"\\u263"}', 'abc') = '';
|
||||||
visitParamExtractString('{"abc":"hello}', 'abc') = ''
|
visitParamExtractString('{"abc":"hello}', 'abc') = '';
|
||||||
```
|
```
|
||||||
|
|
||||||
На данный момент, не поддерживаются записанные в формате `\uXXXX\uYYYY` кодовые точки не из basic multilingual plane (они переводятся не в UTF-8, а в CESU-8).
|
На данный момент не поддерживаются записанные в формате `\uXXXX\uYYYY` кодовые точки не из basic multilingual plane (они переводятся не в UTF-8, а в CESU-8).
|
||||||
|
|
||||||
Следующие функции используют [simdjson](https://github.com/lemire/simdjson) который разработан под более сложные требования для разбора JSON. Упомянутое выше предположение 2 по-прежнему применимо.
|
Следующие функции используют [simdjson](https://github.com/lemire/simdjson), который разработан под более сложные требования для разбора JSON. Упомянутое выше допущение 2 по-прежнему применимо.
|
||||||
|
|
||||||
## isValidJSON(json) {#isvalidjsonjson}
|
## isValidJSON(json) {#isvalidjsonjson}
|
||||||
|
|
||||||
@ -292,4 +306,3 @@ SELECT JSONExtractKeysAndValuesRaw('{"a": [-100, 200.0], "b":{"c": {"d": "hello"
|
|||||||
│ [('d','"hello"'),('f','"world"')] │
|
│ [('d','"hello"'),('f','"world"')] │
|
||||||
└───────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
└───────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user