@Override
  public void setTableProperties(
      ConnectorSession session,
      ConnectorTableHandle tableHandle,
      Map<String, Optional<Object>> properties) {
    IcebergTableHandle table = (IcebergTableHandle) tableHandle;
    Table icebergTable = loadTable(session, table.getSchemaTableName());

    transaction = icebergTable.newTransaction();
    UpdateProperties updateProperties = transaction.updateProperties();

    for (Map.Entry<String, Optional<Object>> propertyEntry : properties.entrySet()) {
      String trinoPropertyName = propertyEntry.getKey();
      Optional<Object> propertyValue = propertyEntry.getValue();

      switch (trinoPropertyName) {
        case FILE_FORMAT_PROPERTY:
          updateProperties.defaultFormat(
              ((IcebergFileFormat) propertyValue.orElseThrow()).toIceberg());
          break;
        case FORMAT_VERSION_PROPERTY:
          // UpdateProperties#commit will trigger any necessary metadata updates required for the
          // new spec version
          updateProperty(
              updateProperties,
              FORMAT_VERSION,
              propertyValue,
              formatVersion -> Integer.toString((int) formatVersion));
          break;
        default:
          // TODO: Support updating partitioning https://github.com/trinodb/trino/issues/12174
          throw new TrinoException(
              NOT_SUPPORTED, "Updating the " + trinoPropertyName + " property is not supported");
      }
    }

    try {
      updateProperties.commit();
      transaction.commitTransaction();
    } catch (RuntimeException e) {
      throw new TrinoException(ICEBERG_COMMIT_ERROR, "Failed to commit new table properties", e);
    }
  }
Iceberg original metadata has some problems for mixed-format table, such as iceberg version,
table type. So copy from IcebergMetadata and made some change
amoro-format-mixed/amoro-mixed-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergMetadata.java