The definition of an ARRAY/VARRAY determines its storage size.
| Field | Description | Size (bytes) |
|---|---|---|
| Flag bits | Used to configure the layout of the field. Bit 0: variable offset size.
Bits 1 - 15: unused |
2 |
| Last present element | Index of the last present element in the array. This consists of 1 to number_of_dimensions integer values, one for each dimension. The index values are 0-based. If the array has uninitialized elements, the index values are equal to -1. |
4 x number_of_dimensions |
| Presence bit array | Presence bit array for the array elements. A variable length byte array with 1 bit per element laid out in row major order. 0 means the element is null. 1 means the element is not null. |
|
| Variable offset array |
|
2 x number_of_elements or 4 x number_of_elements |
| Element value array | All elements are stored in row major order. Variable length elements are stored in their actual size. |
number_of_elements x element_size |