class MergeTableLikeUtil {

	public TableSchema mergeTables(
			Map<FeatureOption, MergingStrategy> mergingStrategies,
			TableSchema sourceSchema,
			List<SqlNode> derivedColumns,
			List<SqlWatermark> derivedWatermarkSpecs,
			SqlTableConstraint derivedPrimaryKey) {

		SchemaBuilder schemaBuilder = new SchemaBuilder(
			mergingStrategies,
			sourceSchema,
			(FlinkTypeFactory) validator.getTypeFactory(),
			validator,
			escapeExpression);
		schemaBuilder.appendDerivedColumns(mergingStrategies, derivedColumns);
		schemaBuilder.appendDerivedWatermarks(mergingStrategies, derivedWatermarkSpecs);
		schemaBuilder.appendDerivedPrimaryKey(derivedPrimaryKey);

		return schemaBuilder.build();
	}

	  MergeTableLikeUtil(
			SqlValidator validator,
			Function<SqlNode, String> escapeExpression);

}