Skip to content

[jdbc-v2] Document Type Info changes in V2 in documentation #2743

@chernser

Description

@chernser

Description

V2 has reworked DatabaseMetadata implementation to be more JDBC compliant.

Here is what V1 returns for Type info:

--- ALL DATA TYPES SUPPORTED BY ClickHouse (from DatabaseMetaData.getTypeInfo()) ---
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TYPE_NAME                      | DATA_TYPE | PRECISION       | LITERAL_PREFIX | LITERAL_SUFFIX  | NULLABLE   | CASE_SENS  | SEARCHABLE | CREATE_PARAMS            
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AggregateFunction              | 1111   | 0               | '('          | ')'             | NO         | true       | BASIC      |                          
Array                          | 2003   | 0               | '['          | ']'             | NO         | true       | BASIC      |                          
BFloat16                       | 1111   | 3               | ''           | ''              | YES        | true       | BASIC      |                          
BIGINT                         | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
BIGINT SIGNED                  | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
BIGINT UNSIGNED                | 2      | 20              | ''           | ''              | YES        | true       | BASIC      |                          
BINARY                         | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
BINARY LARGE OBJECT            | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
BINARY VARYING                 | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
BIT                            | 2      | 20              | ''           | ''              | YES        | true       | BASIC      |                          
BLOB                           | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
BYTE                           | -6     | 3               | ''           | ''              | YES        | true       | BASIC      |                          
BYTEA                          | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
Bool                           | 16     | 1               | ''           | ''              | YES        | false      | BASIC      |                          
CHAR                           | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
CHAR LARGE OBJECT              | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
CHAR VARYING                   | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
CHARACTER                      | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
CHARACTER LARGE OBJECT         | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
CHARACTER VARYING              | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
CLOB                           | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
DEC                            | 3      | 76              | ''           | ''              | YES        | false      | BASIC      |                          
DOUBLE                         | 8      | 22              | ''           | ''              | YES        | true       | BASIC      |                          
DOUBLE PRECISION               | 8      | 22              | ''           | ''              | YES        | true       | BASIC      |                          
Date                           | 91     | 10              | '''          | '''             | YES        | false      | BASIC      |                          
Date32                         | 91     | 10              | '''          | '''             | YES        | false      | BASIC      |                          
DateTime                       | 93     | 29              | '''          | '''             | YES        | false      | BASIC      |                          
DateTime32                     | 93     | 19              | '''          | '''             | YES        | false      | BASIC      |                          
DateTime64                     | 93     | 29              | '''          | '''             | YES        | false      | BASIC      |                          
Decimal                        | 3      | 76              | ''           | ''              | YES        | false      | BASIC      |                          
Decimal128                     | 3      | 38              | ''           | ''              | YES        | false      | BASIC      |                          
Decimal256                     | 3      | 76              | ''           | ''              | YES        | false      | BASIC      |                          
Decimal32                      | 3      | 9               | ''           | ''              | YES        | false      | BASIC      |                          
Decimal64                      | 3      | 18              | ''           | ''              | YES        | false      | BASIC      |                          
Dynamic                        | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
ENUM                           | 12     | 0               | '''          | '''             | YES        | true       | BASIC      |                          
Enum                           | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
Enum16                         | 12     | 0               | '''          | '''             | YES        | true       | BASIC      |                          
Enum8                          | 12     | 0               | '''          | '''             | YES        | true       | BASIC      |                          
FIXED                          | 3      | 76              | ''           | ''              | YES        | false      | BASIC      |                          
FLOAT                          | 6      | 12              | ''           | ''              | YES        | true       | BASIC      |                          
FixedString                    | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
Float32                        | 6      | 12              | ''           | ''              | YES        | true       | BASIC      |                          
Float64                        | 8      | 22              | ''           | ''              | YES        | true       | BASIC      |                          
GEOMETRY                       | 1111   | 0               | ''           | ''              | YES        | false      | BASIC      |                          
Geometry                       | 1111   | 0               | ''           | ''              | YES        | false      | BASIC      |                          
INET4                          | 12     | 10              | ''           | ''              | YES        | true       | BASIC      |                          
INET6                          | 12     | 39              | ''           | ''              | YES        | true       | BASIC      |                          
INT                            | 4      | 10              | ''           | ''              | YES        | true       | BASIC      |                          
INT SIGNED                     | 4      | 10              | ''           | ''              | YES        | true       | BASIC      |                          
INT UNSIGNED                   | -5     | 10              | ''           | ''              | YES        | true       | BASIC      |                          
INT1                           | -6     | 3               | ''           | ''              | YES        | true       | BASIC      |                          
INT1 SIGNED                    | -6     | 3               | ''           | ''              | YES        | true       | BASIC      |                          
INT1 UNSIGNED                  | 5      | 3               | ''           | ''              | YES        | true       | BASIC      |                          
INTEGER                        | 4      | 10              | ''           | ''              | YES        | true       | BASIC      |                          
INTEGER SIGNED                 | 4      | 10              | ''           | ''              | YES        | true       | BASIC      |                          
INTEGER UNSIGNED               | -5     | 10              | ''           | ''              | YES        | true       | BASIC      |                          
IPv4                           | 12     | 10              | ''           | ''              | YES        | true       | BASIC      |                          
IPv6                           | 12     | 39              | ''           | ''              | YES        | true       | BASIC      |                          
Int128                         | 2      | 39              | ''           | ''              | YES        | true       | BASIC      |                          
Int16                          | 5      | 5               | ''           | ''              | YES        | true       | BASIC      |                          
Int256                         | 2      | 77              | ''           | ''              | YES        | true       | BASIC      |                          
Int32                          | 4      | 10              | ''           | ''              | YES        | true       | BASIC      |                          
Int64                          | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
Int8                           | -6     | 3               | ''           | ''              | YES        | true       | BASIC      |                          
IntervalDay                    | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalHour                   | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalMicrosecond            | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalMillisecond            | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalMinute                 | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalMonth                  | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalNanosecond             | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalQuarter                | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalSecond                 | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalWeek                   | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
IntervalYear                   | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
JSON                           | 12     | 0               | ''           | ''              | YES        | false      | BASIC      |                          
LONGBLOB                       | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
LONGTEXT                       | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
LineString                     | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
LowCardinality                 | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
MEDIUMBLOB                     | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
MEDIUMINT                      | 4      | 10              | ''           | ''              | YES        | true       | BASIC      |                          
MEDIUMINT SIGNED               | 4      | 10              | ''           | ''              | YES        | true       | BASIC      |                          
MEDIUMINT UNSIGNED             | -5     | 10              | ''           | ''              | YES        | true       | BASIC      |                          
MEDIUMTEXT                     | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
Map                            | 2002   | 0               | '{'          | '}'             | NO         | true       | BASIC      |                          
MultiLineString                | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
MultiPolygon                   | 2003   | 0               | '['          | ']'             | NO         | true       | BASIC      |                          
NATIONAL CHAR                  | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
NATIONAL CHAR VARYING          | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
NATIONAL CHARACTER             | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
NATIONAL CHARACTER LARGE OBJECT | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
NATIONAL CHARACTER VARYING     | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
NCHAR                          | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
NCHAR LARGE OBJECT             | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
NCHAR VARYING                  | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
NUMERIC                        | 3      | 76              | ''           | ''              | YES        | false      | BASIC      |                          
NVARCHAR                       | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
Nested                         | 2002   | 0               | '['          | ']'             | NO         | true       | BASIC      |                          
Nothing                        | 0      | 0               | ''           | ''              | YES        | true       | BASIC      |                          
Nullable                       | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
Point                          | 2003   | 0               | '('          | ')'             | NO         | true       | BASIC      |                          
Polygon                        | 2003   | 0               | '['          | ']'             | NO         | true       | BASIC      |                          
QBit                           | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
REAL                           | 6      | 12              | ''           | ''              | YES        | true       | BASIC      |                          
Ring                           | 2003   | 0               | '['          | ']'             | NO         | true       | BASIC      |                          
SET                            | 2      | 20              | ''           | ''              | YES        | true       | BASIC      |                          
SIGNED                         | -5     | 19              | ''           | ''              | YES        | true       | BASIC      |                          
SINGLE                         | 6      | 12              | ''           | ''              | YES        | true       | BASIC      |                          
SMALLINT                       | 5      | 5               | ''           | ''              | YES        | true       | BASIC      |                          
SMALLINT SIGNED                | 5      | 5               | ''           | ''              | YES        | true       | BASIC      |                          
SMALLINT UNSIGNED              | 4      | 5               | ''           | ''              | YES        | true       | BASIC      |                          
SimpleAggregateFunction        | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
String                         | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
TEXT                           | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
TIMESTAMP                      | 93     | 29              | '''          | '''             | YES        | false      | BASIC      |                          
TINYBLOB                       | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
TINYINT                        | -6     | 3               | ''           | ''              | YES        | true       | BASIC      |                          
TINYINT SIGNED                 | -6     | 3               | ''           | ''              | YES        | true       | BASIC      |                          
TINYINT UNSIGNED               | 5      | 3               | ''           | ''              | YES        | true       | BASIC      |                          
TINYTEXT                       | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
Time                           | 1111   | 9               | ''           | ''              | YES        | false      | BASIC      |                          
Time64                         | 1111   | 9               | ''           | ''              | YES        | false      | BASIC      |                          
Tuple                          | 2002   | 0               | '('          | ')'             | NO         | true       | BASIC      |                          
UInt128                        | 2      | 39              | ''           | ''              | YES        | true       | BASIC      |                          
UInt16                         | 4      | 5               | ''           | ''              | YES        | true       | BASIC      |                          
UInt256                        | 2      | 78              | ''           | ''              | YES        | true       | BASIC      |                          
UInt32                         | -5     | 10              | ''           | ''              | YES        | true       | BASIC      |                          
UInt64                         | 2      | 20              | ''           | ''              | YES        | true       | BASIC      |                          
UInt8                          | 5      | 3               | ''           | ''              | YES        | true       | BASIC      |                          
UNSIGNED                       | 2      | 20              | ''           | ''              | YES        | true       | BASIC      |                          
UUID                           | 12     | 69              | '''          | '''             | YES        | true       | BASIC      |                          
VARBINARY                      | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
VARCHAR                        | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
VARCHAR2                       | 12     | 0               | '''          | '''             | YES        | true       | ALL        |                          
Variant                        | 1111   | 0               | ''           | ''              | YES        | true       | BASIC      |                          
YEAR                           | 4      | 5               | ''           | ''              | YES        | true       | BASIC      |                          
bool                           | 16     | 1               | ''           | ''              | YES        | false      | BASIC      |                          
boolean                        | 16     | 1               | ''           | ''              | YES        | false      | BASIC      |     

And this is V2 output:

--- ALL DATA TYPES SUPPORTED BY ClickHouse (from DatabaseMetaData.getTypeInfo()) ---
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TYPE_NAME                      | DATA_TYPE | PRECISION       | LITERAL_PREFIX | LITERAL_SUFFIX  | NULLABLE   | CASE_SENS  | SEARCHABLE | CREATE_PARAMS            
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AggregateFunction              | 1111   | 0               | null         | null            | NO         | true       | ALL        |                          
Array                          | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
BFloat16                       | 6      | 3               | null         | null            | NO         | true       | ALL        |                          
Bool                           | 16     | 1               | null         | null            | NO         | false      | ALL        |                          
Date                           | 91     | 10              | null         | null            | NO         | false      | ALL        |                          
Date32                         | 91     | 10              | null         | null            | NO         | false      | ALL        |                          
DateTime                       | 93     | 29              | null         | null            | NO         | false      | ALL        |                          
DateTime32                     | 93     | 19              | null         | null            | NO         | false      | ALL        |                          
DateTime64                     | 93     | 29              | null         | null            | NO         | false      | ALL        |                          
Decimal                        | 3      | 76              | null         | null            | NO         | false      | ALL        |                          
Decimal128                     | 3      | 38              | null         | null            | NO         | false      | ALL        |                          
Decimal256                     | 3      | 76              | null         | null            | NO         | false      | ALL        |                          
Decimal32                      | 3      | 9               | null         | null            | NO         | false      | ALL        |                          
Decimal64                      | 3      | 18              | null         | null            | NO         | false      | ALL        |                          
Dynamic                        | 1111   | 0               | null         | null            | YES        | true       | ALL        |                          
Enum                           | 12     | 0               | null         | null            | NO         | false      | ALL        |                          
Enum16                         | 12     | 0               | null         | null            | NO         | true       | ALL        |                          
Enum8                          | 12     | 0               | null         | null            | NO         | true       | ALL        |                          
FixedString                    | 12     | 0               | null         | null            | NO         | true       | ALL        |                          
Float32                        | 6      | 12              | null         | null            | NO         | true       | ALL        |                          
Float64                        | 8      | 22              | null         | null            | NO         | true       | ALL        |                          
Geometry                       | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
IPv4                           | 1111   | 10              | null         | null            | NO         | true       | ALL        |                          
IPv6                           | 1111   | 39              | null         | null            | NO         | true       | ALL        |                          
Int128                         | 1111   | 39              | null         | null            | NO         | true       | ALL        |                          
Int16                          | 5      | 5               | null         | null            | NO         | true       | ALL        |                          
Int256                         | 1111   | 77              | null         | null            | NO         | true       | ALL        |                          
Int32                          | 4      | 10              | null         | null            | NO         | true       | ALL        |                          
Int64                          | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
Int8                           | -6     | 3               | null         | null            | NO         | true       | ALL        |                          
IntervalDay                    | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalHour                   | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalMicrosecond            | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalMillisecond            | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalMinute                 | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalMonth                  | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalNanosecond             | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalQuarter                | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalSecond                 | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalWeek                   | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
IntervalYear                   | -5     | 19              | null         | null            | NO         | true       | ALL        |                          
JSON                           | 1111   | 0               | null         | null            | NO         | false      | ALL        |                          
LineString                     | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
LowCardinality                 | 1111   | 0               | null         | null            | NO         | true       | ALL        |                          
Map                            | 1111   | 0               | null         | null            | NO         | true       | ALL        |                          
MultiLineString                | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
MultiPolygon                   | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
Nested                         | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
Nothing                        | 1111   | 0               | null         | null            | NO         | true       | ALL        |                          
Nullable                       | 1111   | 0               | null         | null            | YES        | true       | ALL        |                          
Point                          | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
Polygon                        | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
QBit                           | 1111   | 0               | null         | null            | NO         | true       | ALL        |                          
Ring                           | 2003   | 0               | null         | null            | NO         | true       | ALL        |                          
SimpleAggregateFunction        | 1111   | 0               | null         | null            | NO         | true       | ALL        |                          
String                         | 12     | 0               | null         | null            | NO         | true       | ALL        |                          
Time                           | 92     | 9               | null         | null            | NO         | false      | ALL        |                          
Time64                         | 92     | 9               | null         | null            | NO         | false      | ALL        |                          
Tuple                          | 1111   | 0               | null         | null            | NO         | true       | ALL        |                          
UInt128                        | 1111   | 39              | null         | null            | NO         | true       | ALL        |                          
UInt16                         | 4      | 5               | null         | null            | NO         | true       | ALL        |                          
UInt256                        | 1111   | 78              | null         | null            | NO         | true       | ALL        |                          
UInt32                         | -5     | 10              | null         | null            | NO         | true       | ALL        |                          
UInt64                         | 1111   | 20              | null         | null            | NO         | true       | ALL        |                          
UInt8                          | 5      | 3               | null         | null            | NO         | true       | ALL        |                          
UUID                           | 1111   | 69              | null         | null            | NO         | true       | ALL        |                          
Variant                        | 1111   | 0               | null         | null            | NO         | true       | ALL        |      

Metadata

Metadata

Assignees

No one assigned

    Labels

    jdbc-v2jdbc-v2 issues

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions