Skip to main content

Data Types

Datafold facilitates data diffing by supporting a wide range of basic data types across major database systems like BigQuery, PostgreSQL, Redshift, Databricks, and Snowflake.

The tables below provide an overview of these types, categorized as numeric, string, boolean, date/time, etc., tailored to each system's specifics, to help pinpoint compatible types and grasp their mappings across different databases. Note that data types not included in these tables are not currently supported by Datafold.

For cross-database diffing, it's important to note that while the tables list the primary data types supported by Datafold, you can still diff data with types outside these lists. Datafold samples values and refines them further, often implicitly supporting a broad range of types. In scenarios where a type is not explicitly supported, it may be interpreted as Text(). While this is usually sufficient, be aware that it can lead to false positives in some cases.

Supported types for in-database diffing

BigQuery

CategoryType
NumericINTEGER, INT64, FLOAT, FLOAT64, NUMERIC, BIGNUMERIC, BIGDECIMAL
BooleanBOOLEAN, BOOL
StringSTRING
Date/TimeDATE, DATETIME, TIMESTAMP, TIME
AdditionalJSON

PostgreSQL/Redshift

CategoryType
NumericBIGINT, INT8, INTEGER, INT4, SMALLINT, INT2, REAL, FLOAT4, FLOAT8, NUMERIC, DOUBLE PRECISION
StringCHARACTER, CHAR, BCHAR, CHARACTER VARYING, VARCHAR, NAME, TEXT, CHARACTER VARYING
BooleanBOOLEAN, BOOL
Date/TimeDATE, TIMESTAMPTZ, TIMESTAMP, TIME, TIMESTAMP WITH/OUT TIME ZONE, TIME WITH/OUT TIME ZONE
UUIDUUID

Databricks

CategoryType
NumericBIGINT, TINYINT, SMALLINT, INT, DOUBLE, DECIMAL, FLOAT, REAL
StringCHAR, STRING, VARCHAR
BooleanBOOLEAN
Date/TimeTIMESTAMP, DATE

Snowflake

CategoryType
NumericNUMBER, FLOAT, REAL
StringTEXT, VARCHAR
BooleanBOOLEAN
Date/TimeDATE, TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ, TIME
AdditionalBINARY, VARIANT, ARRAY, OBJECT

Supported types for cross-database diffing

Note for cross-database diffing only: while the tables list the primary data types supported by Datafold, you can still diff data with types outside these lists. Datafold samples values and refines them further, often implicitly supporting a broad range of types. In scenarios where a type is not explicitly supported, it may be interpreted as Text(). While this is usually sufficient, be aware that it can lead to false positives in some cases.

BigQuery

CategoryType
DatesTIMESTAMP, DATETIME
NumbersINT64, INT32, NUMERIC, BIGNUMERIC, FLOAT64, FLOAT32
TextSTRING
BooleanBOOL
JSONJSON

Databricks

CategoryType
NumbersINT, SMALLINT, TINYINT, BIGINT, FLOAT, DOUBLE, DECIMAL
TimestampsTIMESTAMP
TextSTRING
BooleanBOOLEAN

MS SQL

CategoryType
TimestampsDATETIMEOFFSET, DATETIME, DATETIME2, SMALLDATETIME, DATE
NumbersFLOAT, REAL, DECIMAL, MONEY, SMALLMONEY
IntegersINT, BIGINT, TINYINT, SMALLINT
TextVARCHAR, CHAR, TEXT, NTEXT, NVARCHAR, NCHAR, BINARY, VARBINARY, XML
UUIDUNIQUEIDENTIFIER
BooleanBIT
JSONJSON

MYSQL

CategoryType
DatesDATETIME, TIMESTAMP, DATE
NumbersDOUBLE, FLOAT, DECIMAL, INT, BIGINT, MEDIUMINT, SMALLINT, TINYINT
TextVARCHAR, CHAR, VARBINARY, BINARY, TEXT, MEDIUMTEXT, LONGTEXT, TINYTEXT
BooleanBOOLEAN

Oracle

CategoryType
NumbersNUMBER, FLOAT
TextCHAR, NCHAR, NVARCHAR2, VARCHAR2
TimestampsDATE

PostgreSQL and Redshift

CategoryType
TimestampsTIMESTAMPTZ, TIMESTAMP, TIMESTAMP WITH/OUT TIME ZONE, DATE
NumbersDOUBLE PRECISION, REAL, DECIMAL, SMALLINT, INTEGER, NUMERIC, BIGINT
TextCHARACTER, CHARACTER VARYING, VARCHAR, TEXT, JSON, JSONB
BooleanBOOLEAN
UUIDUUID

Snowflake

CategoryType
TimestampsTIMESTAMP_NTZ, TIMESTAMP_LTZ, TIMESTAMP_TZ, DATE
NumbersNUMBER, FLOAT
TextTEXT
BooleanBOOLEAN