private SchemaNode generateSchemaTree() {
    SchemaNode root = new SchemaInternalNode("root");

    SchemaNode sg = new SchemaInternalNode("sg");
    root.addChild("sg", sg);

    SchemaMeasurementNode s1 =
        new SchemaMeasurementNode("s1", new MeasurementSchema("s1", TSDataType.INT32));
    s1.setTagMap(Collections.singletonMap("key1", "value1"));
    SchemaMeasurementNode s2 =
        new SchemaMeasurementNode("s2", new MeasurementSchema("s2", TSDataType.DOUBLE));
    s2.setTagMap(Collections.singletonMap("key1", "value1"));
    SchemaMeasurementNode s3 =
        new SchemaMeasurementNode("s3", new MeasurementSchema("s3", TSDataType.BOOLEAN));
    s3.setTagMap(Collections.singletonMap("key1", "value2"));
    SchemaMeasurementNode s4 =
        new SchemaMeasurementNode("s4", new MeasurementSchema("s4", TSDataType.TEXT));
    s4.setTagMap(Collections.singletonMap("key2", "value1"));
    s2.setAlias("status");

    SchemaEntityNode d1 = new SchemaEntityNode("d1");
    sg.addChild("d1", d1);
    d1.addChild("s1", s1);
    d1.addChild("s2", s2);
    d1.addAliasChild("status", s2);
    d1.addChild("s3", s3);

    SchemaEntityNode d2 = new SchemaEntityNode("d2");
    sg.addChild("d2", d2);
    d2.addChild("s1", s1);
    d2.addChild("s2", s2);
    d2.addAliasChild("status", s2);
    d2.addChild("s4", s4);

    SchemaEntityNode a = new SchemaEntityNode("a");
    a.setAligned(true);
    d2.addChild("a", a);
    a.addChild("s1", s1);
    a.addChild("s2", s2);
    a.addAliasChild("status", s2);

    return root;
  }
Generate the following tree: root.sg.d1.s1, root.sg.d1.s2(status) root.sg.d2.s1,
root.sg.d2.s2(status) root.sg.d2.a.s1, root.sg.d2.a.s2(status)

@return the root node of the generated schemaTree
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/analyze/FakeSchemaFetcherImpl.java