Expand description
A physical plan for window sort(Which is sorting multiple sorted ranges according to input PartitionRange
).
Structsยง
- Sorted
RunSet ๐ - SucRun ๐
- A struct to represent a successive run in the input iterator
- Time
Range ๐ - Left(
start
) inclusive right(end
) exclusive, - Windowed
Sort Exec - A complex stream sort execution plan which accepts a list of
PartitionRange
and merge sort them whenever possible, and emit the sorted result as soon as possible. This sorting plan only accept sort by ts and will not sort by other fields. - Windowed
Sort Stream - The core logic of merging sort multiple sorted ranges
Enumsยง
- Action ๐
Functionsยง
- check_
partition_ ๐range_ monotonicity - cmp_
with_ ๐opts - Compare with options, note None is considered as NULL here
- compute_
all_ ๐working_ ranges - Compute all working ranges and corresponding working sets from given
overlap_counts
computed fromsplit_overlapping_ranges
- find_
slice_ ๐from_ range - Find the slice(where start <= data < end and sort by
sort_column.options
) from the given range - find_
successive_ ๐runs - find all successive runs in the input iterator
- get_
sorted_ ๐runs - return a list of non-overlapping (offset, length) which represent sorted runs, and
can be used to call [
DfRecordBatch::slice
] to get sorted runs Returned runs will be as long as possible, and will not overlap with each other - get_
timestamp_ ๐from_ idx - Get timestamp from array at offset
- split_
batch_ ๐to_ sorted_ run - split batch to sorted runs
- split_
overlapping_ ๐ranges - return a map of non-overlapping ranges and their corresponding index
(not
PartitionRange.identifier
but position in array) in the inputPartitionRange
s that is in those ranges - split_
range_ ๐by - split input range by
split_by
range to one, two or three parts.