message: Pass the already generated upper cased search string to from_list.
diff: @@ -199,7 +199,7 @@ size_t IndexArray::from_list<index_FindAll_nocopy>(StringData value, IntegerColu
  template <>
  -size_t IndexArray::from_list<index_FindAll_ins>(StringData value, IntegerColumn& result, InternalFindResult& /*result_ref*/,
  +size_t IndexArray::from_list<index_FindAll_ins>(StringData upper_value, IntegerColumn& result, InternalFindResult& /*result_ref*/,
  const IntegerColumn& rows, ColumnBase* column) const
  {
  // The buffer is needed when for when this is an integer index.
  @@ -218,7 +218,6 @@ size_t IndexArray::from_list<index_FindAll_ins>(StringData value, IntegerColumn&
  // special case for very long strings, where they might have a common prefix and end up in the
  // same subindex column, but still not be identical
  - auto upper_value = case_map(value, true);
  for (IntegerColumn::const_iterator it = rows.cbegin(); it != rows.cend(); ++it) {
  const size_t row_ndx = to_size_t(*it);
  StringData str = column->get_index_data(row_ndx, buffer);
  @@ -464,7 +463,7 @@ size_t IndexArray::index_string<index_FindAll_ins>(StringData value, IntegerColu
  // List of row indices with common prefix up to this point, in sorted order.
  if (!sub_isindex) {
  const IntegerColumn sub(m_alloc, to_ref(ref));
  - from_list<index_FindAll_ins>(value, result, result_ref, sub, column);
  + from_list<index_FindAll_ins>(upper_value, result, result_ref, sub, column);
  continue;
  }
  