Axion does not limit the user to a set of predefined data types. Instead, the user can easily plug in new data types and extend or change the names of registered data types. Any class that implements org.axiondb.DataType and for which there is a corresponding DataTypeFactory can be dropped right into Axion via a configuration file. The org.axiondb.types package has quite a few examples. The mappings between registered data types and the associated Java classes is defined in the axiondb.properties file.
By default, the following data types are registered:
Name |
Range / Description |
Implemented by (org.axiondb.types.__ ) |
---|---|---|
Characters |
||
char |
same as java char type |
CharacterType |
varchar, varchar2, string |
same as java String type |
StringType |
clob |
Character Large Object (CLOB) |
LOBType |
compressedclob |
Compressed CLOB |
CompressedLOBType |
Numbers (Integer) |
||
integer, int |
-2,147,483,648 .. 2,147,483,647 |
IntegerType |
long |
-9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807 |
LongType |
byte |
-128 .. +127 |
ByteType |
short |
-32,768 .. 32,767 |
ShortType |
unsignedinteger |
0 .. 4294967296 |
UnsignedIntegerType |
unsignedshort |
0 .. 65536 |
UnsignedShortType |
unsignedbyte |
0 .. 255 |
UnsignedByteType |
number |
Signed decimal number with unlimited precision based on java.lang.BigDecimal. Scale is currently limited to 2. Example: -12,313,452,312,324,234.34 |
BigDecimalType |
Numbers (float) |
||
float |
-3.40282347e+38 .. +3.40282347e+38 .. |
FloatType |
Date / Time |
||
date, time, timestamp |
same as java.sql.TimesStamp |
TimestampType |
Other |
||
boolean |
false, true |
BooleanType |
Java_Object |
ObjectType |
|
varbinary |
VarBinaryType |
|
blob |
Binary Large Object (BLOB) |
LOBType |
compressedblob |
Compressed BLOB; |
CompressedLOBType |
To register other names for these types, e.g. 'bit' or 'memo', add the following lines to axiondb.properties:
type.bit=org.axiondb.BooleanType type.memo=org.axiondb.LOBType