private static Types.NestedField getColumn(
      net.sf.jsqlparser.expression.Expression expr, List<Types.NestedField> tableColumns) {
    if (expr instanceof Column) {
      String columnName = ((Column) expr).getColumnName();
      Optional<Types.NestedField> column =
          tableColumns.stream().filter(c -> c.name().equals(columnName)).findFirst();
      if (column.isPresent()) {
        return column.get();
      }
      throw new IllegalArgumentException("Column not found: " + columnName);
    }

    throw new IllegalArgumentException("Expected column reference, got: " + expr);
  }
Convert SQL filter to Iceberg {@link Expression}.

@param sqlFilter the SQL filter
@param tableColumns the list of table columns
@return the Iceberg {@link Expression}
amoro-format-iceberg/src/main/java/org/apache/amoro/utils/ExpressionUtil.java