@Override
  public Analysis visitPipeEnrichedStatement(
      final PipeEnrichedStatement pipeEnrichedStatement, final MPPQueryContext context) {
    // The LoadTsFileStatement is a special case, it needs isGeneratedByPipe information
    // in the analyzer to execute the tsfile-tablet conversion in some cases.
    if (pipeEnrichedStatement.getInnerStatement() instanceof LoadTsFileStatement) {
      ((LoadTsFileStatement) pipeEnrichedStatement.getInnerStatement()).markIsGeneratedByPipe();
    }

    final Analysis analysis = pipeEnrichedStatement.getInnerStatement().accept(this, context);
    analysis.setDatabaseName(context.getDatabaseName().orElse(null));

    // statement may be changed because of logical view
    pipeEnrichedStatement.setInnerStatement(analysis.getTreeStatement());
    analysis.setRealStatement(pipeEnrichedStatement);
    return analysis;
  }
Check datatype consistency in ALIGN BY DEVICE.

<p>an inconsistent example: select s0 from root.sg1.d1, root.sg1.d2 align by device, return
false while root.sg1.d1.s0 is INT32 and root.sg1.d2.s0 is FLOAT.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/AnalyzeVisitor.java