message: Predication here as well
diff: @@ -72,10 +72,10 @@ void Select(SelectionVector &sel, Vector &result, unsigned char *source, nullmas
  } else {
  for (idx_t i = 0; i < approved_tuple_count; i++) {
  idx_t src_idx = sel.get_index(i);
  - if (OP::Operation(((T *)source)[src_idx], constant)) {
  + bool comparison_result = OP::Operation(((T *)source)[src_idx], constant);
  ((T *)result_data)[src_idx] = ((T *)source)[src_idx];
  - new_sel.set_index(result_count++, src_idx);
  - }
  + new_sel.set_index(result_count, src_idx);
  + result_count += comparison_result;
  }
  }
  sel.Initialize(new_sel);
  @@ -101,11 +101,11 @@ void Select(SelectionVector &sel, Vector &result, unsigned char *source, nullmas
  } else {
  for (idx_t i = 0; i < approved_tuple_count; i++) {
  idx_t src_idx = sel.get_index(i);
  - if (OPL::Operation(((T *)source)[src_idx], constantLeft) &&
  - OPR::Operation(((T *)source)[src_idx], constantRight)) {
  + bool comparison_result = OPL::Operation(((T *)source)[src_idx], constantLeft) &&
  + OPR::Operation(((T *)source)[src_idx], constantRight);
  ((T *)result_data)[src_idx] = ((T *)source)[src_idx];
  - new_sel.set_index(result_count++, src_idx);
  - }
  + new_sel.set_index(result_count, src_idx);
  + result_count += comparison_result;
  }
  }
  sel.Initialize(new_sel);
  