Oxla supports a wide range of data types, each designed to handle specific types of data efficiently.

The following table summarizes the data types supported by Oxla:

Data Type
Definition
Format
INT32-bit signed integerone or more digits “0” to “9”
BIGINT64-bit signed integerlarge numeric/decimal value
REAL32-bit floating point numberfloat(n)
DOUBLE PRECISION64-bit floating point numberdecimal(p, s)
TIMESTAMP WITHOUT TIME ZONETime and date values without a time zoneYYYY-MM-DD [HH:MM:SS[.SSSSSS]]
TIMESTAMP WITH TIME ZONEDate and time values, including the time zone informationYYYY-MM-DD HH:MM:SS.SSSSSS+TZ
DATEDate valueYYYY-MM-DD
TIMETime values without any date informationHH:MM:SS[.SSSSSS]
INTERVALEncodes a span of timeyear-month (YYYY-MM); day-time (DD HH:MM:SS)
BOOLBoolean valueTrue or False
TEXTUTF8 encoded string with Unicode support’text’
JSONA value in JSON standard formatvariable_name JSON
ARRAYAn array of a specific data type'{value1, value2, value3}'::data_type[]

Overflow Risks
When performing operations on numeric or temporal types, please be aware that overflows can lead to undefined behavior, resulting in unexpected values or errors. Ensure input values are within the allowed range for each numeric type to prevent overflows. This can occur during arithmetic operations or function execution (e.g. AVG()), where the result does not fit the result type. Using larger data types such as BIGINT can help mitigate overflow risks.

Casting Considerations
Explicit casting between types can cause data loss due to altered precision or magnitude, such as truncating fractional seconds in TIME or silently clipping out-of-range values. Please verify input ranges to prevent unintended data loss.