@Override
  public Analysis visitLoadFile(LoadTsFileStatement loadTsFileStatement, MPPQueryContext context) {
    context.setQueryType(QueryType.WRITE);

    try (final LoadTsFileAnalyzer loadTsFileAnalyzer =
        new LoadTsFileAnalyzer(
            loadTsFileStatement, loadTsFileStatement.isGeneratedByPipe(), context)) {
      return (Analysis) loadTsFileAnalyzer.analyzeFileByFile(new Analysis());
    } catch (final Exception e) {
      final String exceptionMessage =
          String.format(
              "Failed to execute load tsfile statement %s. Detail: %s",
              loadTsFileStatement,
              e.getMessage() == null ? e.getClass().getName() : e.getMessage());
      logger.warn(exceptionMessage, e);
      final Analysis analysis = new Analysis();
      analysis.setFinishQueryAfterAnalyze(true);
      analysis.setFailStatus(RpcUtils.getStatus(TSStatusCode.LOAD_FILE_ERROR, exceptionMessage));
      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