Commit c2d72cda authored by wenmo's avatar wenmo

字段血缘

parent 0c8bbc72
package com.dlink.explainer.ca; package com.dlink.explainer.ca;
import com.dlink.assertion.Asserts;
import com.dlink.explainer.trans.Field; import com.dlink.explainer.trans.Field;
import com.dlink.explainer.trans.OperatorTrans; import com.dlink.explainer.trans.OperatorTrans;
import com.dlink.explainer.trans.SinkTrans; import com.dlink.explainer.trans.SinkTrans;
...@@ -91,22 +92,22 @@ public class ColumnCAGenerator implements CAGenerator { ...@@ -91,22 +92,22 @@ public class ColumnCAGenerator implements CAGenerator {
sufOnly.add(nodeRel.getSufId()); sufOnly.add(nodeRel.getSufId());
} }
} }
/*for (NodeRel nodeRel : this.columnCASRel) { for (NodeRel nodeRel : this.columnCASRel) {
if(sufOnly.contains(nodeRel.getPreId())) { if(sufOnly.contains(nodeRel.getPreId())) {
sufOnly.remove(nodeRel.getPreId()); sufOnly.remove(nodeRel.getPreId());
} }
}*/ }
List<Integer> preOnly = new ArrayList<>(); List<Integer> preOnly = new ArrayList<>();
for (NodeRel nodeRel : this.columnCASRel) { for (NodeRel nodeRel : this.columnCASRel) {
if(!preOnly.contains(nodeRel.getPreId())) { if(!preOnly.contains(nodeRel.getPreId())) {
preOnly.add(nodeRel.getPreId()); preOnly.add(nodeRel.getPreId());
} }
} }
/*for (NodeRel nodeRel : this.columnCASRel) { for (NodeRel nodeRel : this.columnCASRel) {
if(preOnly.contains(nodeRel.getSufId())) { if(preOnly.contains(nodeRel.getSufId())) {
preOnly.remove(nodeRel.getSufId()); preOnly.remove(nodeRel.getSufId());
} }
}*/ }
for (int i = 0; i < sufOnly.size(); i++) { for (int i = 0; i < sufOnly.size(); i++) {
ColumnCA columnCA = (ColumnCA)this.columnCASMaps.get(sufOnly.get(i)); ColumnCA columnCA = (ColumnCA)this.columnCASMaps.get(sufOnly.get(i));
List<String> fields = tableCA.getFields(); List<String> fields = tableCA.getFields();
...@@ -136,7 +137,7 @@ public class ColumnCAGenerator implements CAGenerator { ...@@ -136,7 +137,7 @@ public class ColumnCAGenerator implements CAGenerator {
if (transMaps.get(id) instanceof OperatorTrans) { if (transMaps.get(id) instanceof OperatorTrans) {
OperatorTrans trans = (OperatorTrans) transMaps.get(id); OperatorTrans trans = (OperatorTrans) transMaps.get(id);
List<Field> selects = trans.getSelect(); List<Field> selects = trans.getSelect();
if (selects != null && selects.size() > 0) { if (Asserts.isNotNull(selects)) {
for (int i = 0; i < selects.size(); i++) { for (int i = 0; i < selects.size(); i++) {
String operation = selects.get(i).getFragment(); String operation = selects.get(i).getFragment();
String alias = selects.get(i).getAlias(); String alias = selects.get(i).getAlias();
...@@ -150,7 +151,7 @@ public class ColumnCAGenerator implements CAGenerator { ...@@ -150,7 +151,7 @@ public class ColumnCAGenerator implements CAGenerator {
} }
private void searchSelect(TableCA tableCA, ColumnCA columnCA, OperatorTrans trans, String operation, String alias) { private void searchSelect(TableCA tableCA, ColumnCA columnCA, OperatorTrans trans, String operation, String alias) {
if (operation.contains(" " + columnCA.getAlias() + " ") || if(Asserts.isEquals(operation,columnCA.getAlias())||operation.contains(" " + columnCA.getAlias() + " ") ||
operation.contains("(" + columnCA.getAlias() + " ") || operation.contains("(" + columnCA.getAlias() + " ") ||
operation.contains(" " + columnCA.getAlias() + ")")) { operation.contains(" " + columnCA.getAlias() + ")")) {
boolean isHad = false; boolean isHad = false;
......
package com.dlink.explainer.ca; package com.dlink.explainer.ca;
import com.dlink.assertion.Asserts;
import com.dlink.explainer.trans.Field; import com.dlink.explainer.trans.Field;
import com.dlink.explainer.trans.OperatorTrans; import com.dlink.explainer.trans.OperatorTrans;
import com.dlink.explainer.trans.SinkTrans; import com.dlink.explainer.trans.SinkTrans;
...@@ -89,14 +90,14 @@ public class TableCAGenerator implements CAGenerator { ...@@ -89,14 +90,14 @@ public class TableCAGenerator implements CAGenerator {
OperatorTrans trans = (OperatorTrans) transMaps.get(id); OperatorTrans trans = (OperatorTrans) transMaps.get(id);
searchSelectFields(tableCA, trans.getSelect(),field); searchSelectFields(tableCA, trans.getSelect(),field);
searchWhereFields(tableCA, trans.getWhere(),field); searchWhereFields(tableCA, trans.getWhere(),field);
if(trans.getParentId()!=null){ if(Asserts.isNotNull(trans.getParentId())){
buildTableCAFields(tableCA,trans.getParentId(),field); buildTableCAFields(tableCA,trans.getParentId(),field);
} }
} }
} }
private void searchSelectFields(TableCA tableCA, List<Field> selects, String field){ private void searchSelectFields(TableCA tableCA, List<Field> selects, String field){
if(selects!=null&&selects.size()>0){ if(Asserts.isNotNull(selects)){
for (int i = 0; i < selects.size(); i++){ for (int i = 0; i < selects.size(); i++){
List<String> fields = matchFields( selects.get(i).getFragment(),field); List<String> fields = matchFields( selects.get(i).getFragment(),field);
/*if(tableCA.getFields().contains(field)){ /*if(tableCA.getFields().contains(field)){
...@@ -112,7 +113,7 @@ public class TableCAGenerator implements CAGenerator { ...@@ -112,7 +113,7 @@ public class TableCAGenerator implements CAGenerator {
} }
private void searchWhereFields(TableCA tableCA,String wheres,String field){ private void searchWhereFields(TableCA tableCA,String wheres,String field){
if(wheres!=null&&!"[]".equals(wheres)){ if(Asserts.isNotNull(wheres)&&!"[]".equals(wheres)){
List<String> fields = matchFields( wheres,field); List<String> fields = matchFields( wheres,field);
/*if(tableCA.getFields().contains(field)){ /*if(tableCA.getFields().contains(field)){
tableCA.getFields().remove(field); tableCA.getFields().remove(field);
......
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