Home | Table of Contents | Data Types in Metadata | CloverETL 4.6.1
--- | --- | ---
Prev | Records and Fields | Next

### Data Types in Metadata

Each metadata field can be of different data type.

The following types of record fields are used in metadata. If you need to see data types used in CTL, see Data Types in CTL2.

Table 32.1. Data Types in Metadata

Data type | Size [1] | Range or values | Default value
--- | --- | --- | ---
boolean | Represents 1 bit. Its size is not precisely defined. | `true` | `false` | `1` | `0` | `false` | `0`
byte | Depends on the actual data length. | from -128 to 127 | `null`
cbyte | Depends on the actual data length and success of compression. | from -128 to 127 | `null`
date | 64 bits [2] | Starts January 1, 1970, 00:00:00 GMT and is incremented by 1 ms. | `1970-01-01, 00:00:00 GMT`
decimal | Depends on `Length` and `Scale`. (The former is the maximum number of all digits, the latter is the maximum number of digits after the decimal dot. Default values are 12 and 2, respectively.) [3] [4] | `decimal(6,2)` (They can have values from -9999.99 to 9999.99, length and scale can only be defined in CTL1) | `0.00`
integer | 32 bits [3] | From `Integer.MIN_VALUE` to `Integer.MAX_VALUE` (according to the Java integer data type): From -231 to 231-1. `Integer.MIN_VALUE` is interpreted as `null`. | `0`
long | 64 bits [3] | From `Long.MIN_VALUE` to `Long.MAX_VALUE` (according to the Java long data type): From -263 to 263-1. `Long.MIN_VALUE` is interpreted as `null`. | `0`
number | 64 bits [3] | Negative values are from -(2-2-52).21023 to -2-1074, another value is 0, and positive values are from 2-1074 to (2-2-52).21023. Three special values: `NaN`, `-Infinity`, and `Infinity` are defined. | `0.0`
string | Depends on the actual data length. Each character is stored in 16 bits. | Obviously you cannot have infinite strings. Instead of limiting how many characters each string can consist of (theoretically up to 64K), think about memory requirements. A string takes (number of characters) * 2 bytes of memory. At the same time, no record can take more than `MAX_RECORD_SIZE` of bytes, see Chapter 18, Engine Configuration. | `null` [5]
[1] This column may look like an implementation detail but it is not so true. Size lets you estimate how much memory your records are going to need. To do that, take a look at how many fields your record has, which data types they are and then compare the result to the `MAX_RECORD_SIZE` property (the maximum size of a record in bytes, see Chapter 18, Engine Configuration). If your records are likely to have more bytes than that, simply raise the value (otherwise buffer overflow will occur). [2] Any date can be parsed and formatted using date and time format pattern. See Date and Time Format. Parsing and formatting can also be influenced by locale. See Locale. [3] Any numeric data type can be parsed and formatted using numeric format pattern. See Numeric Format. Parsing and formatting may also be influenced by locale. See Locale. [4] The default `length` and `scale` of a `decimal` are `12` and `2`, respectively. These default values of DECIMAL_LENGTH and DECIMAL_SCALE are contained in the `org.jetel.data.defaultProperties` file and can be changed to other values. [5] By default, if a field which is of the string data type of any metadata is an empty string, such field value is converted to `null` instead of an empty string (`""`) unless you set the Null value property of the field to any other value.

For other information about these data types and other data types used in Clover transformation language (CTL) see Data Types in CTL2.

Prev | Up | Next
Record Types | Home | Table of Contents | Data Formats