Data Model

Data Types

Support SQL Type Name Alias Size (byte) Description Range
O boolean bool 1   true/false
  bit   1   1/0
  varbit bit varying      
O tinyint int1 1 tiny-range integer value -2^7 (-128) to 2^7-1 (127)
O smallint int2 2 small-range integer value -2^15 (-32,768) to 2^15-1 (32,767)
O integer int, int4 4 integer value -2^31 (-2,147,483,648) to 2^31 - 1 (2,147,483,647)
O bigint bit varying 8 larger range integer value -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)
O real int8 4 variable-precision, inexact, real number value -3.4028235E+38 to 3.4028235E+38 (6 decimal digits precision)
O float[(n)] float4 4 or 8 variable-precision, inexact, real number value  
O double float8, double precision 8 variable-precision, inexact, real number value 1 .7E–308 to 1.7E+308 (15 decimal digits precision)
  number decimal      
  char[(n)] character      
  varchar[(n)] character varying      
O text text   variable-length unicode text  
  binary binary      
  varbinary[(n)] binary varying      
O blob bytea   variable-length binary string  
O date        
O time        
  timetz time with time zone      
O timestamp        
O inet4   4 IPv4 address  

Using real number value (real and double)

The real and double data types are mapped to float and double of java primitives respectively. Java primitives float and double follows the IEEE 754 specification. So, these types are correctly matched to SQL standard data types.

  • float[( n )] is mapped to either float or double according to a given length n. If n is specified, it must be bewtween 1 and 53. The default value of n is 53.
  • If 1 <- n <- 24, a value is mapped to float (6 decimal digits precision).
  • If 25 <- n <- 53, a value is mapped to double (15 decimal digits precision).
  • Do not use approximate real number columns in WHERE clause in order to compare some exact matches, especially the - and <> operators. The > or < comparisons work well.