@Override
  public List<RowData> get(RowData key) throws IOException {
    Collection<ByteArrayWrapper> uniqueKeys = setState.get(key);
    if (!uniqueKeys.isEmpty()) {
      List<RowData> result = new ArrayList<>(uniqueKeys.size());
      for (ByteArrayWrapper uniqueKey : uniqueKeys) {
        recordState.get(uniqueKey.bytes).ifPresent(result::add);
      }
      return result;
    }
    return Collections.emptyList();
  }
Use secondary index to lookup. Working for the situation where the join keys don't match the
mixed-format table's primary keys.

<p>Example: <code>
SELECT * FROM t1 JOIN t2 for system_time as of t1.pt as dim ON t1.user_name = dim.user_name
</code>

<p>t2 as an mixed-format table with primary keys: user_name, city_name.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/lookup/SecondaryIndexTable.java