public List<Expr> getPartitionExprs(Map<ColumnId, Column> idToColumn) {
        List<Expr> result = new ArrayList<>(partitionExprs.size());
        for (ColumnIdExpr columnIdExpr : partitionExprs) {
            result.add(columnIdExpr.convertToColumnNameExpr(idToColumn));
        }
        return result;
    }
@Test
    public void testExpressionRangePartitionInfoSerialized_FunctionExpr() throws Exception {
        ConnectContext ctx = starRocksAssert.getCtx();
        String createSQL = "CREATE TABLE table_hitcount (\n" +
                "databaseName varchar(200) NULL COMMENT \"\",\n" +
                "tableName varchar(200) NULL COMMENT \"\",\n" +
                "queryTime varchar(50) NULL COMMENT \"\",\n" +
                "queryId varchar(50) NULL COMMENT \"\",\n" +
                "partitionHitSum int(11) NULL COMMENT \"\",\n" +
                "partitionSum int(11) NULL COMMENT \"\",\n" +
                "tabletHitNum int(11) NULL COMMENT \"\",\n" +
                "tabletSum int(11) NULL COMMENT \"\",\n" +
                "startHitPartition varchar(20) NULL COMMENT \"\",\n" +
                "dt date NULL COMMENT \"\",\n" +
                "clusterAddress varchar(50) NULL COMMENT \"\",\n" +
                "costTime int(11) NULL COMMENT \"\",\n" +
                "tableQueryCount int(11) NULL COMMENT \"\"\n" +
                ") ENGINE=OLAP\n" +
                "DUPLICATE KEY(databaseName, tableName)\n" +
                "COMMENT \"OLAP\"\n" +
                "PARTITION BY date_trunc('day', dt)\n" +
                "DISTRIBUTED BY HASH(databaseName) BUCKETS 1\n" +
                "PROPERTIES (\n" +
                "\"replication_num\" = \"1\",\n" +
                "\"in_memory\" = \"false\",\n" +
                "\"enable_persistent_index\" = \"false\",\n" +
                "\"replicated_storage\" = \"true\",\n" +
                "\"compression\" = \"LZ4\"\n" +
                ");";
        CreateTableStmt createTableStmt = (CreateTableStmt) UtFrameUtils.parseStmtWithNewParser(createSQL, ctx);
        StarRocksAssert.utCreateTableWithRetry(createTableStmt);
        Database db = GlobalStateMgr.getCurrentState().getDb("test");
        Table table = db.getTable("table_hitcount");
        // serialize
        String json = GsonUtils.GSON.toJson(table);
        // deserialize
        OlapTable readTable = GsonUtils.GSON.fromJson(json, OlapTable.class);
        ExpressionRangePartitionInfo expressionRangePartitionInfo = (ExpressionRangePartitionInfo) readTable.getPartitionInfo();
        List<Expr> readPartitionExprs = expressionRangePartitionInfo.getPartitionExprs(readTable.getIdToColumn());
        Function fn = readPartitionExprs.get(0).getFn();
        Assert.assertNotNull(fn);
        starRocksAssert.dropTable("table_hitcount");
    }