in backup-core/src/main/java/org/apache/iotdb/backup/core/pipeline/out/source/OutTsfileDataSource.java [110:142]
private Flux<String> validateStorage(String s) {
return Flux.deferContextual(
context -> {
PipelineContext<ExportModel> pcontext = context.get("pipelineContext");
ExportModel exportModel = pcontext.getModel();
String version = context.get("VERSION");
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder
.append("count storage group ")
.append(ExportPipelineService.formatPath(exportModel.getIotdbPath(), version));
String sql = sqlBuilder.toString();
try {
SessionDataSet deviceData = exportModel.getSession().executeQueryStatement(sql);
if (deviceData.hasNext()) {
RowRecord rowRecord = deviceData.next();
Integer count =
rowRecord
.getFields()
.get(deviceData.getColumnNames().indexOf("storage group"))
.getIntV();
if (count > 1) {
throw new Exception("the path has more than one storage group");
}
}
} catch (StatementExecutionException | IoTDBConnectionException e) {
log.error("异常信息sql:{},e : {}", sql, e);
} catch (Exception e) {
log.error("异常信息sql:{},e : {}", sql, e);
return Flux.error(e);
}
return Flux.just(s);
});
}