These are the key terms used in the Arrow specification:
- Array: A list of values with a known length of the same type.
- Slot: The value in an array identified by a specific index.
- Buffer/contiguous memory region: A single contiguous block of memory with a given length.
- Physical layout: The underlying memory layout for an array without accounting for the interpretation of the logical value. For example, a 32-bit signed integer array and a 32-bit floating-point array are both laid out as contiguous chunks of memory where each value is made up of four contiguous bytes in the buffer.
- Parent/child arrays: Terms used for the relationship between physical arrays when describing the structure of a nested type. For example, a struct parent array has a child array for each of its fields.
- Primitive type: A type that has no child types and so consists of a single array, such as fixed-bit-width arrays (for example, int32) or variable-size types (for example, string arrays)
- Nested type: A type that depends on one or more other child types. Nested types are only equal if their child types are also equal (for example, List of T and List of U are equal if T and U are equal.)
- Data Type instead refer to particular form of interpreting the values in an array that’s implemented using a specific physical layout. For example, the decimal data type stores values as 16 bytes per value in a fixed-size binary layout. Similarly, a timestamp data type stores values using a 64-bit fixed-size layout.