@Override
    public String toSql(OlapTable table, List<Long> partitionId) {
        String replicationNumStr = table.getTableProperty()
                .getProperties().get(PROPERTIES_REPLICATION_NUM);
        short tableReplicationNum = replicationNumStr == null ?
                RunMode.defaultReplicationNum() : Short.parseShort(replicationNumStr);

        StringBuilder sb = new StringBuilder();
        sb.append("PARTITION BY ");
        if (!automaticPartition) {
            sb.append("LIST");
        }
        sb.append("(");
        sb.append(MetaUtils.getColumnsByColumnIds(table, partitionColumnIds).stream()
                .map(item -> "`" + item.getName() + "`")
                .collect(Collectors.joining(",")));
        sb.append(")");
        if (!automaticPartition) {
            List<Long> partitionIds = getPartitionIds(false);
            sb.append("(\n");
            if (!idToValues.isEmpty()) {
                sb.append(this.singleListPartitionSql(table, partitionIds, tableReplicationNum));
            }

            if (!idToMultiValues.isEmpty()) {
                sb.append(this.multiListPartitionSql(table, partitionIds, tableReplicationNum));
            }
            sb.append("\n)");
        }
        return sb.toString();
    }
@Test
    public void testToSqlForMulti() {
        List<Long> partitionId = Lists.newArrayList(10001L, 10002L);
        String sql = this.listPartitionInfoForMulti.toSql(this.findTableForMultiListPartition(), partitionId);
        String target = "PARTITION BY LIST(`dt`,`province`)(\n" +
                "  PARTITION p1 VALUES IN (('2022-04-15', 'guangdong'), ('2022-04-15', 'tianjin')) " +
                "(\"replication_num\" = \"1\"),\n" +
                "  PARTITION p2 VALUES IN (('2022-04-16', 'shanghai'), ('2022-04-16', 'beijing')) " +
                "(\"replication_num\" = \"1\")\n" +
                ")";
        Assert.assertEquals(sql, target);
    }