[opt](assert_num_rows) support filter in AssertNumRows operator and fix some explain (#28935)

* NEED

* Update pipeline x

* fix pipelinex compile
This commit is contained in:
zhiqiang
2023-12-25 22:47:23 +08:00
committed by GitHub
parent 0af9371a96
commit c2c5df9341
7 changed files with 142 additions and 0 deletions

View File

@ -79,6 +79,11 @@ public class AssertNumRowsNode extends PlanNode {
StringBuilder output = new StringBuilder()
.append(prefix).append("assert number of rows: ")
.append(assertion).append(" ").append(desiredNumOfRows).append("\n");
if (!conjuncts.isEmpty()) {
output.append(prefix).append("predicates: ").append(getExplainString(conjuncts)).append("\n");
}
return output.toString();
}

View File

@ -26,6 +26,7 @@ import org.apache.doris.statistics.StatisticalType;
import org.apache.doris.tablefunction.DataGenTableValuedFunction;
import org.apache.doris.tablefunction.TableValuedFunctionTask;
import org.apache.doris.thrift.TDataGenScanNode;
import org.apache.doris.thrift.TExplainLevel;
import org.apache.doris.thrift.TNetworkAddress;
import org.apache.doris.thrift.TPlanNode;
import org.apache.doris.thrift.TPlanNodeType;
@ -117,4 +118,23 @@ public class DataGenScanNode extends ExternalScanNode {
public int getNumInstances() {
return 1;
}
@Override
public String getNodeExplainString(String prefix, TExplainLevel detailLevel) {
if (detailLevel == TExplainLevel.BRIEF) {
return "";
}
StringBuilder output = new StringBuilder();
if (!conjuncts.isEmpty()) {
output.append(prefix).append("predicates: ").append(getExplainString(conjuncts)).append("\n");
}
output.append(prefix).append("table value function: ").append(tvf.getDataGenFunctionName()).append("\n");
return output.toString();
}
}

View File

@ -120,6 +120,10 @@ public class PartitionSortNode extends PlanNode {
}
output.append("\n");
if (!conjuncts.isEmpty()) {
output.append(prefix).append("predicates: ").append(getExplainString(conjuncts)).append("\n");
}
// Add the limit information;
output.append(prefix).append("has global limit: ").append(hasGlobalLimit).append("\n");
output.append(prefix).append("partition limit: ").append(partitionLimit).append("\n");