MySQL to SingleStore Data Type Mapping
On this page
The following mappings define how MySQL data types are represented in SingleStore.
For more information about SingleStore data types, refer to Data Types.
String Types
|
MySQL Type |
SingleStore Type (more info) |
|---|---|
|
CHAR |
CHAR |
|
VARCHAR |
VARCHAR |
|
NCHAR |
CHAR |
|
NVARCHAR |
VARCHAR |
|
TEXT |
TEXT |
|
TINYTEXT |
TINYTEXT |
|
MEDIUMTEXT |
MEDIUMTEXT |
|
LONGTEXT |
LONGTEXT |
Integer Types
|
MySQL Type |
SingleStore Type (more info) |
|---|---|
|
TINYINT |
TINYINT |
|
SMALLINT |
SMALLINT |
|
MEDIUMINT |
INT |
|
INT / INTEGER |
INT |
|
BIGINT |
BIGINT |
|
BOOL / BOOLEAN |
TINYINT |
Floating Point and Decimal Types
|
MySQL Type |
SingleStore Type (more info) |
|---|---|
|
FLOAT |
FLOAT (if precision ≤ 24) DOUBLE (if precision > 24) |
|
DOUBLE |
DOUBLE |
|
DOUBLE PRECISION |
DOUBLE |
|
DECIMAL |
DECIMAL |
Binary String Types
|
MySQL Type |
SingleStore Type (more info) |
|---|---|
|
BINARY |
VARBINARY |
Date and Time Types
|
MySQL Type |
SingleStore Type (more info) |
|---|---|
|
DATE |
DATE |
|
DATETIME |
DATETIME |
|
TIMESTAMP |
DATETIME |
|
TIME |
TIME |
|
YEAR |
YEAR |
Invalid MySQL DATETIME and TIMESTAMP Values
Certain invalid DATETIME values are automatically converted to valid SingleStore values:
|
MySQL Type |
SingleStore Type |
|---|---|
|
0000-00-00 00:00:00 |
1000-01-01 00:00:00 |
|
0001-00-00 00:00:00 |
1001-01-01 00:00:00 |
|
0001-01-01 01:01:01 |
1001-01-01 01:01:01 |
|
0025-01-01 00:00:00 |
1025-01-01 00:00:00 |
For TIMESTAMP, the following conversion takes place:
|
MySQL Type |
SingleStore Type |
|---|---|
|
0000-00-00 00:00:00 |
1000-01-01 00:00:00 |
Flow converts these invalid values using the following rules, in order:
-
Zero dates
If the value is
0000-00-00 00:00:00, convert it to1000-01-01 00:00:00. -
Years below
1000If the year is between
0000and0999, add1000to the year.Examples:
-
Year
0001becomes1001 -
Year
0025becomes1025 -
Year
0999becomes1999
-
-
Invalid month or day (
00)If the month or day is
00, it is replaced with01.-
If month is
00, replace it with01. -
If day is
00, replace it with01.
For example:
-
0001-00-00→ (Rule 2) →1001-00-00→ (Rule 3) →1001-01-01
-
These rules ensure that common invalid values can be ingested without pipeline failures while preserving their relative ordering as much as possible.
JSON Types
|
MySQL Type |
SingleStore Type (more info) |
|---|---|
|
JSON |
JSON |
Other Types
|
MySQL Type |
SingleStore Type (more info) |
|---|---|
|
ENUM |
ENUM |
|
BIT |
BIT |
Additional Notes
-
DATETIME is mapped to DATETIME if length = 19 (no fractional seconds) and DATETIME(6) if length > 19 (has fractional seconds).
-
FLOAT maps to FLOAT if precision ≤ 24, otherwise DOUBLE.
Last modified: