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},
/* ... */
};