Unverified Commit 63ed66e8 authored by aiwenmo's avatar aiwenmo Committed by GitHub

[Fix-520] [core] Fix get JobPlanInfo failed

[Fix-520] [core] Fix get JobPlanInfo failed
parents 14adfd6b b03b5603
...@@ -83,6 +83,7 @@ public class Explainer { ...@@ -83,6 +83,7 @@ public class Explainer {
List<StatementParam> ddl = new ArrayList<>(); List<StatementParam> ddl = new ArrayList<>();
List<StatementParam> trans = new ArrayList<>(); List<StatementParam> trans = new ArrayList<>();
List<StatementParam> execute = new ArrayList<>(); List<StatementParam> execute = new ArrayList<>();
List<String> statementList = new ArrayList<>();
for (String item : statements) { for (String item : statements) {
String statement = executor.pretreatStatement(item); String statement = executor.pretreatStatement(item);
if (statement.isEmpty()) { if (statement.isEmpty()) {
...@@ -92,6 +93,7 @@ public class Explainer { ...@@ -92,6 +93,7 @@ public class Explainer {
if (operationType.equals(SqlType.INSERT) || operationType.equals(SqlType.SELECT) || operationType.equals(SqlType.SHOW) if (operationType.equals(SqlType.INSERT) || operationType.equals(SqlType.SELECT) || operationType.equals(SqlType.SHOW)
|| operationType.equals(SqlType.DESCRIBE) || operationType.equals(SqlType.DESC)) { || operationType.equals(SqlType.DESCRIBE) || operationType.equals(SqlType.DESC)) {
trans.add(new StatementParam(statement, operationType)); trans.add(new StatementParam(statement, operationType));
statementList.add(statement);
if (!useStatementSet) { if (!useStatementSet) {
break; break;
} }
...@@ -99,9 +101,10 @@ public class Explainer { ...@@ -99,9 +101,10 @@ public class Explainer {
execute.add(new StatementParam(statement, operationType)); execute.add(new StatementParam(statement, operationType));
} else { } else {
ddl.add(new StatementParam(statement, operationType)); ddl.add(new StatementParam(statement, operationType));
statementList.add(statement);
} }
} }
return new JobParam(Arrays.asList(statements), ddl, trans, execute); return new JobParam(statementList, ddl, trans, execute);
} }
public List<SqlExplainResult> explainSqlResult(String statement) { public List<SqlExplainResult> explainSqlResult(String statement) {
...@@ -259,9 +262,13 @@ public class Explainer { ...@@ -259,9 +262,13 @@ public class Explainer {
public ObjectNode getStreamGraph(String statement) { public ObjectNode getStreamGraph(String statement) {
JobParam jobParam = pretreatStatements(SqlUtil.getStatements(statement, sqlSeparator)); JobParam jobParam = pretreatStatements(SqlUtil.getStatements(statement, sqlSeparator));
if (jobParam.getDdl().size() > 0) {
for(StatementParam statementParam: jobParam.getDdl()){
executor.executeSql(statementParam.getValue());
}
}
if (jobParam.getTrans().size() > 0) { if (jobParam.getTrans().size() > 0) {
return executor.getStreamGraph(jobParam.getStatements()); return executor.getStreamGraph(jobParam.getTransStatement());
} else if (jobParam.getExecute().size() > 0) { } else if (jobParam.getExecute().size() > 0) {
List<String> datastreamPlans = new ArrayList<>(); List<String> datastreamPlans = new ArrayList<>();
for (StatementParam item : jobParam.getExecute()) { for (StatementParam item : jobParam.getExecute()) {
...@@ -275,9 +282,13 @@ public class Explainer { ...@@ -275,9 +282,13 @@ public class Explainer {
public JobPlanInfo getJobPlanInfo(String statement) { public JobPlanInfo getJobPlanInfo(String statement) {
JobParam jobParam = pretreatStatements(SqlUtil.getStatements(statement, sqlSeparator)); JobParam jobParam = pretreatStatements(SqlUtil.getStatements(statement, sqlSeparator));
if (jobParam.getDdl().size() > 0) {
for(StatementParam statementParam: jobParam.getDdl()){
executor.executeSql(statementParam.getValue());
}
}
if (jobParam.getTrans().size() > 0) { if (jobParam.getTrans().size() > 0) {
return executor.getJobPlanInfo(jobParam.getStatements()); return executor.getJobPlanInfo(jobParam.getTransStatement());
} else if (jobParam.getExecute().size() > 0) { } else if (jobParam.getExecute().size() > 0) {
List<String> datastreamPlans = new ArrayList<>(); List<String> datastreamPlans = new ArrayList<>();
for (StatementParam item : jobParam.getExecute()) { for (StatementParam item : jobParam.getExecute()) {
......
package com.dlink.job; package com.dlink.job;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -46,6 +47,14 @@ public class JobParam { ...@@ -46,6 +47,14 @@ public class JobParam {
return trans; return trans;
} }
public List<String> getTransStatement() {
List<String> statementList = new ArrayList<>();
for(StatementParam statementParam: trans){
statementList.add(statementParam.getValue());
}
return statementList;
}
public void setTrans(List<StatementParam> trans) { public void setTrans(List<StatementParam> trans) {
this.trans = trans; this.trans = trans;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment