private static ProjectedTuple toTuple(Query query, Object value) {
    if (!(value instanceof Struct)) {
      // most likely single projection
      Preconditions.checkArgument(query.projections().size() == 1, "Expected single projection got %s", query.projections().size());
      Expression projection = query.projections().get(0);
      return ProjectedTuple.ofSingle(projection, UNDEFINED_TO_NULL.apply(value));
    }

    Struct struct = (Struct) value;
    List<Object> values = Arrays.stream(struct.getFieldValues()).map(UNDEFINED_TO_NULL).collect(Collectors.toList());
    return ProjectedTuple.of(query.projections(), values);
  }
Convert Geode specific {@link QueryService#UNDEFINED} value to null
criteria/geode/src/org/immutables/criteria/geode/SyncSelect.java