mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Add exception for illegal types for conversion functions with -OrZero or -OrNull postfixes.
Add docs for conversion functions with -OrZero and -OrNull postfixes.
This commit is contained in:
parent
6d3379cbbd
commit
78f13839ac
@ -971,8 +971,18 @@ public:
|
||||
ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH);
|
||||
|
||||
if (!isStringOrFixedString(arguments[0].type))
|
||||
throw Exception("Illegal type " + arguments[0].type->getName() + " of first argument of function " + getName(),
|
||||
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
|
||||
{
|
||||
if (this->getName().find("OrZero") != std::string::npos ||
|
||||
this->getName().find("OrNull") != std::string::npos)
|
||||
throw Exception(
|
||||
"Illegal type " + arguments[0].type->getName() + " of first argument of function " + getName() +
|
||||
". Conversion functions with postfix 'OrZero' or 'OrNull' should take String argument",
|
||||
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
|
||||
else
|
||||
throw Exception(
|
||||
"Illegal type " + arguments[0].type->getName() + " of first argument of function " + getName(),
|
||||
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
|
||||
}
|
||||
|
||||
if (arguments.size() == 2)
|
||||
{
|
||||
|
@ -40,8 +40,36 @@ SELECT toInt64(nan), toInt32(32), toInt16('16'), toInt8(8.8)
|
||||
|
||||
## toInt(8|16|32|64)OrZero
|
||||
|
||||
It takes an argument of type String and tries to parse it into Int (8 | 16 | 32 | 64). If failed, returns 0.
|
||||
|
||||
**Example**
|
||||
|
||||
```sql
|
||||
select toInt64OrZero('123123'), toInt8OrZero('123qwe123')
|
||||
```
|
||||
```text
|
||||
┌─toInt64OrZero('123123')─┬─toInt8OrZero('123qwe123')─┐
|
||||
│ 123123 │ 0 │
|
||||
└─────────────────────────┴───────────────────────────┘
|
||||
```
|
||||
|
||||
|
||||
## toInt(8|16|32|64)OrNull
|
||||
|
||||
It takes an argument of type String and tries to parse it into Int (8 | 16 | 32 | 64). If failed, returns NULL.
|
||||
|
||||
**Example**
|
||||
|
||||
```sql
|
||||
select toInt64OrNull('123123'), toInt8OrNull('123qwe123')
|
||||
```
|
||||
```text
|
||||
┌─toInt64OrNull('123123')─┬─toInt8OrNull('123qwe123')─┐
|
||||
│ 123123 │ ᴺᵁᴸᴸ │
|
||||
└─────────────────────────┴───────────────────────────┘
|
||||
```
|
||||
|
||||
|
||||
## toUInt(8|16|32|64)
|
||||
|
||||
Converts an input value to the [UInt](../../data_types/int_uint.md) data type. This function family includes:
|
||||
|
@ -40,8 +40,36 @@ SELECT toInt64(nan), toInt32(32), toInt16('16'), toInt8(8.8)
|
||||
|
||||
## toInt(8|16|32|64)OrZero
|
||||
|
||||
Принимает аргумент типа String и пытается его распарсить в Int(8|16|32|64). Если не удалось - возвращает 0.
|
||||
|
||||
**Пример**
|
||||
|
||||
```sql
|
||||
select toInt64OrZero('123123'), toInt8OrZero('123qwe123')
|
||||
```
|
||||
```text
|
||||
┌─toInt64OrZero('123123')─┬─toInt8OrZero('123qwe123')─┐
|
||||
│ 123123 │ 0 │
|
||||
└─────────────────────────┴───────────────────────────┘
|
||||
```
|
||||
|
||||
|
||||
## toInt(8|16|32|64)OrNull
|
||||
|
||||
Принимает аргумент типа String и пытается его распарсить в Int(8|16|32|64). Если не удалось - возвращает NULL.
|
||||
|
||||
**Пример**
|
||||
|
||||
```sql
|
||||
select toInt64OrNull('123123'), toInt8OrNull('123qwe123')
|
||||
```
|
||||
```text
|
||||
┌─toInt64OrNull('123123')─┬─toInt8OrNull('123qwe123')─┐
|
||||
│ 123123 │ ᴺᵁᴸᴸ │
|
||||
└─────────────────────────┴───────────────────────────┘
|
||||
```
|
||||
|
||||
|
||||
## toUInt(8|16|32|64)
|
||||
|
||||
Преобраует входное значение к типу [UInt](../../data_types/int_uint.md). Семейство функций включает:
|
||||
|
Loading…
Reference in New Issue
Block a user