This is a wrapper struct to be able to correctly merge ARRAY_AGG data from
multiple partitions using BinaryHeap. When used inside BinaryHeap, this
struct returns smallest CustomElement, where smallest is determined by
ordering values (Vec<ScalarValue>) according to sort_options.
This functions merges values array (&[Vec<ScalarValue>]) into single array Vec<ScalarValue>
Merging done according to ordering values stored inside ordering_values (&[Vec<Vec<ScalarValue>>])
Inner Vec<ScalarValue> in the ordering_values can be thought as ordering information for
each ScalarValue in the values array.
Desired ordering specified by sort_options argument (Should have same size with inner Vec<ScalarValue>
of the ordering_values array).