In the coming push I have switched this to a more optimal:

   if ( unboundFilter == RecordFilter.NULL_FILTER ) {
      recordFilter = RecordFilter.NULL_FILTER;
  } else {
    // Converting the array to an iterable ensures that the array cannot be altered
    unboundFilter.bind(Arrays.asList(columns));
  }

I am allowing people to implement their own filters so if we presented the column array to the filter for binding that would allow them to possibly swap the ordering.