Which rows to pick out of a column: 1:, 1:10, 1:10:2 or an explicit list.
Fortran cannot overload t%col('x')(1:10:2) on an arbitrary column expression, so the
selection has to be an object the copy path can be handed. Build one with
parquet_slice_range or parquet_slice_list and pass it to %get_slice.
The rows it selects are rows of THIS TABLE -- in the slice regime, index 1 is the table's first row, not the file's. That is a different thing from the table-level slice regime, which decides how much of the file the table covers in the first place.
type :: parquet_slice private logical :: strided = .true. !! .true. for start:stop:step, .false. for a list. integer(int64) :: start = 1 !! first row (strided form). integer(int64) :: stop = -1 !! last row, or -1 meaning "to the end" (strided form). integer(int64) :: step = 1 !! stride, may be negative, never 0 (strided form). integer(int64), allocatable :: indices(:) !! explicit row list (list form). end type parquet_slice