Type Reference
PostgreSQL data types with SQLite and MariaDB equivalents, storage sizes, cast chains, and a use-case guide.
How to read this table: Each row is a PostgreSQL type. The SQLite and MariaDB columns show the closest equivalent — — means there is no native equivalent and you would typically use TEXT or a workaround. Size is per row stored on disk. Use the search box to filter by type name, keyword (e.g. "json", "date"), or size.
Integer
PostgreSQLSQLiteMariaDBSizeNotes / Range
SMALLINTINTEGERSMALLINT2 bytes-32,768 to 32,767INTEGER / INTINTEGERINT4 bytes-2,147,483,648 to 2,147,483,647BIGINTINTEGERBIGINT8 bytes-9.2 × 10¹⁸ to 9.2 × 10¹⁸SERIALINTEGERINT AUTO_INCREMENT4 bytes1 to 2,147,483,647BIGSERIALINTEGERBIGINT AUTO_INCREMENT8 bytes1 to 9.2 × 10¹⁸OID——4 bytes0 to 4,294,967,295Float
PostgreSQLSQLiteMariaDBSizeNotes / Range
REALREALFLOAT4 bytes~6 decimal digitsDOUBLE PRECISIONREALDOUBLE8 bytes~15 decimal digitsNUMERIC(p,s)NUMERICDECIMAL(p,s)variableup to 131,072 digitsText
PostgreSQLSQLiteMariaDBSizeNotes / Range
TEXTTEXTLONGTEXTvariableunlimitedVARCHAR(n)TEXTVARCHAR(n)variableup to 1 GBCHAR(n)TEXTCHAR(n)fixed nup to 1 GBTSVECTORTEXT—variablePG onlyTSQUERYTEXT—variablePG onlyBit
PostgreSQLSQLiteMariaDBSizeNotes / Range
BIT(n)—BIT(n)n bitsn bits wideVARBIT / BIT VARYING—BIT(64)variableup to 83,886,080 bitsBoolean
PostgreSQLSQLiteMariaDBSizeNotes / Range
BOOLEANINTEGER (0/1)TINYINT(1)1 bytetrue / false / NULLDate/Time
PostgreSQLSQLiteMariaDBSizeNotes / Range
DATETEXT / INTEGERDATE4 bytes4713 BC to 5874897 ADTIMETEXTTIME8 bytes00:00:00 to 24:00:00TIMESTAMPTEXT / INTEGERDATETIME8 bytes4713 BC to 294276 ADTIMESTAMPTZINTEGER (epoch)TIMESTAMP8 bytes4713 BC to 294276 ADINTERVAL——16 bytes-178,000,000 to 178,000,000 yearsRange
PostgreSQLSQLiteMariaDBSizeNotes / Range
INT4RANGE——variablePG onlyINT8RANGE——variablePG onlyNUMRANGE——variablePG onlyTSRANGE——variablePG onlyTSTZRANGE——variablePG onlyDATERANGE——variablePG onlyBinary
PostgreSQLSQLiteMariaDBSizeNotes / Range
BYTEABLOBBLOB / LONGBLOBvariableup to 1 GBJSON
PostgreSQLSQLiteMariaDBSizeNotes / Range
JSONTEXTJSON (TEXT alias)variableup to 1 GBJSONBTEXT—variablePG onlyArray
PostgreSQLSQLiteMariaDBSizeNotes / Range
INTEGER[]——variablePG onlyUUID
PostgreSQLSQLiteMariaDBSizeNotes / Range
UUIDTEXTCHAR(36)16 bytes122 bits of randomnessNetwork
PostgreSQLSQLiteMariaDBSizeNotes / Range
INETTEXTVARCHAR(45)7 or 19 bytesPG onlyCIDRTEXTVARCHAR(43)7 or 19 bytesPG onlyMACADDRTEXT—6 bytesPG onlyMACADDR8TEXT—8 bytesPG onlyMisc
PostgreSQLSQLiteMariaDBSizeNotes / Range
XMLTEXTLONGTEXTvariablePG onlyMONEYNUMERICDECIMAL(19,4)8 bytes~±92 trillionENUMTEXT + CHECKENUM(…)4 bytesup to 8,388,607 labelsPOINT—POINT (spatial)16 bytesfloat8 coordinatespg_lsn——8 bytesPG internal