@Override
  public Optional<ProjectionApplicationResult<ConnectorTableHandle>> applyProjection(
      ConnectorSession session,
      ConnectorTableHandle handle,
      List<ConnectorExpression> projections,
      Map<String, ColumnHandle> assignments) {
    if (handle instanceof KeyedTableHandle) {
      return keyedConnectorMetadata.applyProjection(session, handle, projections, assignments);
    } else {
      return icebergMetadata.applyProjection(session, handle, projections, assignments);
    }
  }
{@link MixedFormatConnectorMetadata} is a Union {@link ConnectorMetadata} contain {@link
KeyedConnectorMetadata} and {@link IcebergMetadata}. This is final {@link ConnectorMetadata}
provided to Trino
amoro-format-mixed/amoro-mixed-trino/src/main/java/org/apache/amoro/trino/MixedFormatConnectorMetadata.java