| 43 | |
| 44 | |
| 45 | void registerDataTypeNumbers(DataTypeFactory & factory) |
| 46 | { |
| 47 | factory.registerDataType("UInt8", createNumericDataType<UInt8>, DataTypeFactory::Case::Sensitive, |
| 48 | Documentation{ |
| 49 | .description = "A 8-bit unsigned integer. See the `Int32` entry for the full documentation of the integer types.", |
| 50 | .syntax = "UInt8", |
| 51 | .related = {"Int32"}, |
| 52 | }); |
| 53 | factory.registerDataType("UInt16", createNumericDataType<UInt16>, DataTypeFactory::Case::Sensitive, |
| 54 | Documentation{ |
| 55 | .description = "A 16-bit unsigned integer. See the `Int32` entry for the full documentation of the integer types.", |
| 56 | .syntax = "UInt16", |
| 57 | .related = {"Int32"}, |
| 58 | }); |
| 59 | factory.registerDataType("UInt32", createNumericDataType<UInt32>, DataTypeFactory::Case::Sensitive, |
| 60 | Documentation{ |
| 61 | .description = "A 32-bit unsigned integer. See the `Int32` entry for the full documentation of the integer types.", |
| 62 | .syntax = "UInt32", |
| 63 | .related = {"Int32"}, |
| 64 | }); |
| 65 | factory.registerDataType("UInt64", createNumericDataType<UInt64>, DataTypeFactory::Case::Sensitive, |
| 66 | Documentation{ |
| 67 | .description = "A 64-bit unsigned integer. See the `Int32` entry for the full documentation of the integer types.", |
| 68 | .syntax = "UInt64", |
| 69 | .related = {"Int32"}, |
| 70 | }); |
| 71 | |
| 72 | factory.registerDataType("Int8", createNumericDataType<Int8>, DataTypeFactory::Case::Sensitive, |
| 73 | Documentation{ |
| 74 | .description = "A 8-bit signed integer. See the `Int32` entry for the full documentation of the integer types.", |
| 75 | .syntax = "Int8", |
| 76 | .related = {"Int32"}, |
| 77 | }); |
| 78 | factory.registerDataType("Int16", createNumericDataType<Int16>, DataTypeFactory::Case::Sensitive, |
| 79 | Documentation{ |
| 80 | .description = "A 16-bit signed integer. See the `Int32` entry for the full documentation of the integer types.", |
| 81 | .syntax = "Int16", |
| 82 | .related = {"Int32"}, |
| 83 | }); |
| 84 | factory.registerDataType("Int32", createNumericDataType<Int32>, DataTypeFactory::Case::Sensitive, |
| 85 | Documentation{ |
| 86 | .description = R"DOCS_MD( |
| 87 | ClickHouse offers a number of fixed-length integers, |
| 88 | with a sign (`Int`) or without a sign (unsigned `UInt`) ranging from one byte to 32 bytes. |
| 89 | |
| 90 | When creating tables, numeric parameters for integer numbers can be set (e.g. `TINYINT(8)`, `SMALLINT(16)`, `INT(32)`, `BIGINT(64)`), but ClickHouse ignores them. |
| 91 | |
| 92 | ## Integer Ranges {#integer-ranges} |
| 93 | |
| 94 | Integer types have the following ranges: |
| 95 | |
| 96 | | Type | Range | |
| 97 | |----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
| 98 | | `Int8` | \[-128 : 127\] | |
| 99 | | `Int16` | \[-32768 : 32767\] | |
| 100 | | `Int32` | \[-2147483648 : 2147483647\] | |
| 101 | | `Int64` | \[-9223372036854775808 : 9223372036854775807\] | |
| 102 | | `Int128` | \[-170141183460469231731687303715884105728 : 170141183460469231731687303715884105727\] | |
no test coverage detected