Skip to content

Default Data Type Mapping

The default data type mapping is a hash table built internally inside SynchDB with:

  • key: {data type, auto_increment}
  • value: {data type, size}

where:

  • data type: the string representation of a data type such as int, text, numeric
  • auto_increment: a flag indicating if the data type has auto_increment attribute.
  • size: the translated size value. -1: no change, 0: no size specified

The default data type mapping entries can be overwritten by defining a object mapping rules. See object mapping rules for more information.

MySQL Default Data Type Mapping

DatatypeHashEntry mysql_defaultTypeMappings[] =
{
    {{"int", true}, "serial", 0},
    {{"int unsigned", true}, "serial", 0},
    {{"bigint", true}, "bigserial", 0},
    {{"bigint unsigned", true}, "bigserial", 0},
    {{"smallint", true}, "smallserial", 0},
    {{"smallint unsigned", true}, "smallserial", 0},
    {{"mediumint", true}, "serial", 0},
    {{"mediumint unsigned", true}, "serial", 0},
    {{"tinyint", true}, "smallserial", 0},
    {{"tinyint unsigned", true}, "smallserial", 0},
    {{"enum", false}, "text", 0},
    {{"set", false}, "text", 0},
    {{"bigint", false}, "bigint", 0},
    {{"bigint unsigned", false}, "numeric", -1},
    {{"numeric unsigned", false}, "numeric", -1},
    {{"dec", false}, "decimal", -1},
    {{"dec unsigned", false}, "decimal", -1},
    {{"decimal unsigned", false}, "decimal", -1},
    {{"fixed", false}, "decimal", -1},
    {{"fixed unsigned", false}, "decimal", -1},
    {{"bit(1)", false}, "boolean", 0},
    {{"bit", false}, "bit", -1},
    {{"bool", false}, "boolean", -1},
    {{"double", false}, "double precision", 0},
    {{"double precision", false}, "double precision", 0},
    {{"double precision unsigned", false}, "double precision", 0},
    {{"double unsigned", false}, "double precision", 0},
    {{"real", false}, "real", 0},
    {{"real unsigned", false}, "real", 0},
    {{"float", false}, "real", 0},
    {{"float unsigned", false}, "real", 0},
    {{"int", false}, "int", 0},
    {{"int unsigned", false}, "bigint", 0},
    {{"integer", false}, "int", 0},
    {{"integer unsigned", false}, "bigint", 0},
    {{"mediumint", false}, "int", 0},
    {{"mediumint unsigned", false}, "int", 0},
    {{"year", false}, "int", 0},
    {{"smallint", false}, "smallint", 0},
    {{"smallint unsigned", false}, "int", 0},
    {{"tinyint", false}, "smallint", 0},
    {{"tinyint unsigned", false}, "smallint", 0},
    {{"datetime", false}, "timestamp", -1},
    {{"timestamp", false}, "timestamptz", -1},
    {{"binary", false}, "bytea", 0},
    {{"varbinary", false}, "bytea", 0},
    {{"blob", false}, "bytea", 0},
    {{"mediumblob", false}, "bytea", 0},
    {{"longblob", false}, "bytea", 0},
    {{"tinyblob", false}, "bytea", 0},
    {{"long varchar", false}, "text", 0},
    {{"longtext", false}, "text", 0},
    {{"mediumtext", false}, "text", 0},
    {{"tinytext", false}, "text", 0},
    {{"json", false}, "jsonb", -1},
    {{"geometry", false}, "text", 0},
    {{"geometrycollection", false}, "text", 0},
    {{"geomcollection", false}, "text", 0},
    {{"linestring", false}, "text", 0},
    {{"multilinestring", false}, "text", 0},
    {{"multipoint", false}, "text", 0},
    {{"multipolygon", false}, "text", 0},
    {{"point", false}, "text", 0},
    {{"polygon", false}, "text", 0}
};

SQL Server Default Data Type Mapping

DatatypeHashEntry sqlserver_defaultTypeMappings[] =
{
    {{"int identity", true}, "serial", 0},
    {{"bigint identity", true}, "bigserial", 0},
    {{"smallint identity", true}, "smallserial", 0},
    {{"enum", false}, "text", 0},
    {{"int", false}, "int", 0},
    {{"bigint", false}, "bigint", 0},
    {{"smallint", false}, "smallint", 0},
    {{"tinyint", false}, "smallint", 0},
    {{"numeric", false}, "numeric", -1},
    {{"decimal", false}, "numeric", -1},
    {{"bit(1)", false}, "bool", 0},
    {{"bit", false}, "bit", 0},
    {{"money", false}, "money", 0},
    {{"smallmoney", false}, "money", 0},
    {{"real", false}, "real", 0},
    {{"float", false}, "real", 0},
    {{"date", false}, "date", 0},
    {{"time", false}, "time", 0},
    {{"datetime", false}, "timestamp", 0},
    {{"datetime2", false}, "timestamp", 0},
    {{"datetimeoffset", false}, "timestamptz", 0},
    {{"smalldatetime", false}, "timestamp", 0},
    {{"char", false}, "char", -1},
    {{"varchar", false}, "varchar", -1},
    {{"text", false}, "text", 0},
    {{"nchar", false}, "char", 0},
    {{"nvarchar", false}, "varchar", -1},
    {{"ntext", false}, "text", 0},
    {{"binary", false}, "bytea", 0},
    {{"varbinary", false}, "bytea", 0},
    {{"image", false}, "bytea", 0},
    {{"uniqueidentifier", false}, "uuid", 0},
    {{"xml", false}, "xml", 0},
    {{"json", false}, "jsonb", -1},
    {{"hierarchyid", false}, "text", 0},
    {{"vector", false}, "text", 0},
    {{"geometry", false}, "text", 0},
    {{"geography", false}, "text", 0},
};

Oracle Default Data Type Mapping

DatatypeHashEntry oracle_defaultTypeMappings[] =
{
    {{"binary_double", false}, "double precision", 0},
    {{"binary_float", false}, "real", 0},
    {{"float", false}, "real", 0},
    {{"number(0,0)", false}, "numeric", -1},
    {{"number(1,0)", false}, "smallint", 0},
    {{"number(2,0)", false}, "smallint", 0},
    {{"number(3,0)", false}, "smallint", 0},
    {{"number(4,0)", false}, "smallint", 0},
    {{"number(5,0)", false}, "int", 0},
    {{"number(6,0)", false}, "int", 0},
    {{"number(7,0)", false}, "int", 0},
    {{"number(8,0)", false}, "int", 0},
    {{"number(9,0)", false}, "int", 0},
    {{"number(10,0)", false}, "bigint", 0},
    {{"number(11,0)", false}, "bigint", 0},
    {{"number(12,0)", false}, "bigint", 0},
    {{"number(13,0)", false}, "bigint", 0},
    {{"number(14,0)", false}, "bigint", 0},
    {{"number(15,0)", false}, "bigint", 0},
    {{"number(16,0)", false}, "bigint", 0},
    {{"number(17,0)", false}, "bigint", 0},
    {{"number(18,0)", false}, "bigint", 0},
    {{"number(19,0)", false}, "numeric", -1},
    {{"number(20,0)", false}, "numeric", -1},
    {{"number(21,0)", false}, "numeric", -1},
    {{"number(22,0)", false}, "numeric", -1},
    {{"number(23,0)", false}, "numeric", -1},
    {{"number(24,0)", false}, "numeric", -1},
    {{"number(25,0)", false}, "numeric", -1},
    {{"number(26,0)", false}, "numeric", -1},
    {{"number(27,0)", false}, "numeric", -1},
    {{"number(28,0)", false}, "numeric", -1},
    {{"number(29,0)", false}, "numeric", -1},
    {{"number(30,0)", false}, "numeric", -1},
    {{"number(31,0)", false}, "numeric", -1},
    {{"number(32,0)", false}, "numeric", -1},
    {{"number(33,0)", false}, "numeric", -1},
    {{"number(34,0)", false}, "numeric", -1},
    {{"number(35,0)", false}, "numeric", -1},
    {{"number(36,0)", false}, "numeric", -1},
    {{"number(37,0)", false}, "numeric", -1},
    {{"number(38,0)", false}, "numeric", -1},
    {{"number", false}, "numeric", -1},
    {{"numeric", false}, "numeric", -1},
    {{"date", false}, "timestamp", -1},
    {{"long", false}, "text", -1},
    {{"interval day to second", false}, "interval day to second", -1},
    {{"interval year to month", false}, "interval year to month", 0},
    {{"timestamp", false}, "timestamp", -1},
    {{"timestamp with local time zone", false}, "timestamptz", -1},
    {{"timestamp with time zone", false}, "timestamptz", -1},
    {{"date", false}, "date", -1},
    {{"char", false}, "char", -1},
    {{"nchar", false}, "char", -1},
    {{"nvarchar2", false}, "varchar", -1},
    {{"varchar", false}, "varchar", -1},
    {{"varchar2", false}, "varchar", -1},
    {{"long raw", false}, "bytea", 0},
    {{"raw", false}, "bytea", 0},
    {{"decimal", false}, "decimal", -1},
    {{"rowid", false}, "text", 0},
    {{"urowid", false}, "text", 0},
    {{"xmltype", false}, "text", 0},
    {{"bfile", false}, "text", 0},
    {{"blob", false}, "bytea", 0},
    {{"clob", false}, "text", 0},
    {{"nclob", false}, "text", 0},
    {{"sdo_geometry", false}, "text", 0},
    {{"sdo_topo_geometry", false}, "text", 0},
    {{"sdo_georaster", false}, "text", 0},
    {{"uritype", false}, "text", 0},
    {{"anytype", false}, "text", 0},
    {{"anydata", false}, "text", 0},
    {{"anydataset", false}, "text", 0},
};

Postgres Default Data Type Mapping

DatatypeHashEntry postgres_defaultTypeMappings[] =
{
    {{"bigint", false}, "bigint", 0},
    {{"bigserial", false}, "bigserial", 0},
    {{"bigserial", true}, "bigserial", 0},
    {{"bit", false}, "bit", -1},
    {{"bit varying", false}, "bit varying", -1},
    {{"bool", false}, "bool", 0},
    {{"boolean", false}, "boolean", 0},
    {{"box", false}, "box", 0},
    {{"bytea", false}, "bytea", 0},
    {{"char", false}, "char", -1},
    {{"character", false}, "character", -1},
    {{"character varying", false}, "character varying", -1},
    {{"cidr", false}, "cidr", 0},
    {{"circle", false}, "circle", 0},
    {{"date", false}, "date", 0},
    {{"decimal", false}, "decimal", -1},
    {{"double precision", false}, "double precision", 0},
    {{"float", false}, "float", 0},
    {{"float4", false}, "float4", 0},
    {{"float8", false}, "float8", 0},
    {{"inet", false}, "inet", 0},
    {{"int", false}, "int", 0},
    {{"int2", false}, "int2", 0},
    {{"int4", false}, "int4", 0},
    {{"int8", false}, "int8", 0},
    {{"integer", false}, "integer", 0},
    {{"interval", false}, "interval", -1},
    {{"json", false}, "json", 0},
    {{"jsonb", false}, "jsonb", 0},
    {{"line", false}, "line", 0},
    {{"lseg", false}, "lseg", 0},
    {{"macaddr", false}, "macaddr", 0},
    {{"macaddr8", false}, "macaddr8", 0},
    {{"money", false}, "money", 0},
    {{"numeric", false}, "numeric", -1},
    {{"path", false}, "path", 0},
    {{"pg_lsn", false}, "pg_lsn", 0},
    {{"pg_snapshot", false}, "pg_snapshot", 0},
    {{"point", false}, "point", 0},
    {{"polygon", false}, "polygon", 0},
    {{"real", false}, "real", 0},
    {{"smallint", false}, "smallint", 0},
    {{"smallserial", false}, "smallserial", 0},
    {{"smallserial", true}, "smallserial", 0},
    {{"serial", false}, "serial", 0},
    {{"serial", true}, "serial", 0},
    {{"serial2", false}, "serial2", 0},
    {{"serial2", true}, "serial2", 0},
    {{"serial4", false}, "serial4", 0},
    {{"serial4", true}, "serial4", 0},
    {{"serial8", false}, "serial8", 0},
    {{"serial8", true}, "serial8", 0},
    {{"text", false}, "text", 0},
    {{"time without time zone", false}, "time without time zone", -1},
    {{"time with time zone", false}, "time with time zone", -1},
    {{"time", false}, "time", -1},
    {{"timetz", false}, "timetz", -1},
    {{"timestamp without time zone", false}, "timestamp without time zone", -1},
    {{"timestamp with time zone", false}, "timestamp with time zone", -1},
    {{"timestamp", false}, "timestamp", -1},
    {{"timestamptz", false}, "timestamptz", -1},
    {{"tsquery", false}, "tsquery", 0},
    {{"tsvector", false}, "tsvector", 0},
    {{"txid_snapshot", false}, "txid_snapshot", 0},
    {{"uuid", false}, "uuid", 0},
    {{"varbit", false}, "varbit", -1},
    {{"varchar", false}, "varchar", -1},
    {{"xml", false}, "xml", 0},
    /* ... */
};