Data Types
DataFusion uses Arrow, and thus the Arrow type system, for query execution. The SQL types from sqlparser-rs are mapped to Arrow data types according to the following table. This mapping occurs when defining the schema in a CREATE EXTERNAL TABLE
command or when performing a SQL CAST
operation.
You can see the corresponding Arrow type for any SQL expression using the arrow_typeof
function. For example:
select arrow_typeof(interval '1 month');
+---------------------------------------------------------------------+
| arrow_typeof(IntervalMonthDayNano("79228162514264337593543950336")) |
+---------------------------------------------------------------------+
| Interval(MonthDayNano) |
+---------------------------------------------------------------------+
You can cast a SQL expression to a specific Arrow type using the arrow_cast
function For example, to cast the output of now()
to a Timestamp
with second precision:
select arrow_cast(now(), 'Timestamp(Second, None)');
+---------------------+
| now() |
+---------------------+
| 2023-03-03T17:19:21 |
+---------------------+
Character Types
SQL DataType | Arrow DataType |
---|---|
|
|
|
|
|
|
|
|
Numeric Types
SQL DataType | Arrow DataType |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date/Time Types
SQL DataType | Arrow DataType |
---|---|
|
|
|
|
|
|
|
|
Boolean Types
SQL DataType | Arrow DataType |
---|---|
|
|
Binary Types
SQL DataType | Arrow DataType |
---|---|
|
|
You can create binary literals using a hex string literal such as X'1234'
to create a Binary
value of two bytes, 0x12
and 0x34
.
Unsupported SQL Types
SQL Data Type | Arrow DataType |
---|---|
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
| Not yet supported |
Supported Arrow Types
The following types are supported by the arrow_typeof
function:
Arrow Type |
---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|