public List<LineageRel> analyzeLineage(String statement) {
        // 1. Generate original relNode tree
        Tuple2<String, RelNode> parsed = parseStatement(statement);
        String sinkTable = parsed.getField(0);
        RelNode oriRelNode = parsed.getField(1);

        // 2. Build lineage based from RelMetadataQuery
        return buildFiledLineageResult(sinkTable, oriRelNode);
    }
@Test
    public void testGetLineage() {
        List<LineageRel> actualList = context.analyzeLineage("INSERT INTO TT select a||c A ,b||c B from ST");
        String[][] expectedArray = {
            {"ST", "a", "TT", "A", "||(a, c)"},
            {"ST", "c", "TT", "A", "||(a, c)"},
            {"ST", "b", "TT", "B", "||(b, c)"},
            {"ST", "c", "TT", "B", "||(b, c)"}
        };

        List<LineageRel> expectedList = buildResult(expectedArray);
        assertEquals(expectedList, actualList);
    }