make_map_array_internal

Function make_map_array_internal 

Source
fn make_map_array_internal<O: OffsetSizeTrait>(
    keys: ArrayRef,
    values: ArrayRef,
) -> Result<ColumnarValue>
Expand description

Helper function to create MapArray from array of values to support arrays for Map scalar function

Format of input KEYS and VALUES column
        keys                        values
+---------------------+       +---------------------+
| +-----------------+ |       | +-----------------+ |
| | [k11, k12, k13] | |       | | [v11, v12, v13] | |
| +-----------------+ |       | +-----------------+ |
|                     |       |                     |
| +-----------------+ |       | +-----------------+ |
| | [k21, k22, k23] | |       | | [v21, v22, v23] | |
| +-----------------+ |       | +-----------------+ |
|                     |       |                     |
| +-----------------+ |       | +-----------------+ |
| |[k31, k32, k33]  | |       | |[v31, v32, v33]  | |
| +-----------------+ |       | +-----------------+ |
+---------------------+       +---------------------+

Flattened keys and values array to user create StructArray, which serves as inner child for MapArray

Flattened           Flattened
Keys                Values
+-----------+      +-----------+
| +-------+ |      | +-------+ |
| |  k11  | |      | |  v11  | |
| +-------+ |      | +-------+ |
| +-------+ |      | +-------+ |
| |  k12  | |      | |  v12  | |
| +-------+ |      | +-------+ |
| +-------+ |      | +-------+ |
| |  k13  | |      | |  v13  | |
| +-------+ |      | +-------+ |
| +-------+ |      | +-------+ |
| |  k21  | |      | |  v21  | |
| +-------+ |      | +-------+ |
| +-------+ |      | +-------+ |
| |  k22  | |      | |  v22  | |
| +-------+ |      | +-------+ |
| +-------+ |      | +-------+ |
| |  k23  | |      | |  v23  | |
| +-------+ |      | +-------+ |
| +-------+ |      | +-------+ |
| |  k31  | |      | |  v31  | |
| +-------+ |      | +-------+ |
| +-------+ |      | +-------+ |
| |  k32  | |      | |  v32  | |
| +-------+ |      | +-------+ |
| +-------+ |      | +-------+ |
| |  k33  | |      | |  v33  | |
| +-------+ |      | +-------+ |
+-----------+      +-----------+
```text