public static Map<String, String> generateExtraOptionsFrom(TableSchema schema) {
    Map<String, String> properties = Maps.newHashMap();

    // add properties for computeColumns
    Map<String, String> computeColumnProperties = serializeComputeColumn(schema);
    properties.putAll(computeColumnProperties);

    // add properties for watermark,only support one watermark now
    List<WatermarkSpec> watermarkSpecs = schema.getWatermarkSpecs();
    if (!watermarkSpecs.isEmpty()) {
      if (watermarkSpecs.size() > 1) {
        throw new IllegalStateException("Multiple watermark definition is not supported yet.");
      }
      properties.putAll(serializeWatermarkSpec(watermarkSpecs.get(0)));
    }

    return properties;
  }
Generate table properties for watermark and computed columns from flink TableSchema.

@param schema Flink TableSchema.
@return tableProperties.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/FlinkSchemaUtil.java