[fix](load) Fix InsertStmt prepareExpressions (#8112)
Use queryStmt.getResultExprs() instead of queryStmt.getBaseTblResultExprs() in InsertStmt prepareExpressions func.
This commit is contained in:
@ -667,7 +667,7 @@ public class InsertStmt extends DdlStmt {
|
||||
}
|
||||
|
||||
public void prepareExpressions() throws UserException {
|
||||
List<Expr> selectList = Expr.cloneList(queryStmt.getBaseTblResultExprs());
|
||||
List<Expr> selectList = Expr.cloneList(queryStmt.getResultExprs());
|
||||
// check type compatibility
|
||||
int numCols = targetColumns.size();
|
||||
for (int i = 0; i < numCols; ++i) {
|
||||
|
||||
@ -56,7 +56,12 @@ public class PlanTreeBuilder {
|
||||
PlanTreeNode sinkNode = null;
|
||||
if (sink != null) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("[").append(sink.getExchNodeId().asInt()).append(": ").append(sink.getClass().getSimpleName()).append("]");
|
||||
if (sink.getExchNodeId() != null) {
|
||||
sb.append("[").append(sink.getExchNodeId().asInt()).append(": ")
|
||||
.append(sink.getClass().getSimpleName()).append("]");
|
||||
} else {
|
||||
sb.append("[").append(sink.getClass().getSimpleName()).append("]");
|
||||
}
|
||||
sb.append("\n[Fragment: ").append(fragment.getId().asInt()).append("]");
|
||||
sb.append("\n").append(sink.getExplainString("", TExplainLevel.BRIEF));
|
||||
sinkNode = new PlanTreeNode(sink.getExchNodeId(), sb.toString());
|
||||
|
||||
@ -433,6 +433,20 @@ public class QueryPlanTest {
|
||||
"\"replication_num\" = \"1\"" +
|
||||
");");
|
||||
|
||||
createTable("CREATE TABLE test.result_exprs (\n" +
|
||||
" `aid` int(11) NULL,\n" +
|
||||
" `bid` int(11) NULL\n" +
|
||||
") ENGINE=OLAP\n" +
|
||||
"DUPLICATE KEY(`aid`)\n" +
|
||||
"COMMENT \"OLAP\"\n" +
|
||||
"DISTRIBUTED BY HASH(`aid`) BUCKETS 7\n" +
|
||||
"PROPERTIES (\n" +
|
||||
"\"replication_num\" = \"1\",\n" +
|
||||
"\"in_memory\" = \"false\",\n" +
|
||||
"\"business_key_column_name\" = \"\",\n" +
|
||||
"\"storage_medium\" = \"HDD\",\n" +
|
||||
"\"storage_format\" = \"V2\"\n" +
|
||||
");\n");
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
@ -2026,4 +2040,18 @@ public class QueryPlanTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResultExprs() throws Exception {
|
||||
connectContext.setDatabase("default_cluster:test");
|
||||
String queryStr = "EXPLAIN INSERT INTO result_exprs\n" +
|
||||
"SELECT a.aid,\n" +
|
||||
" b.bid\n" +
|
||||
"FROM\n" +
|
||||
" (SELECT 3 AS aid)a\n" +
|
||||
"RIGHT JOIN\n" +
|
||||
" (SELECT 4 AS bid)b ON (a.aid=b.bid)\n";
|
||||
String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, queryStr);
|
||||
Assert.assertFalse(explainString.contains("OUTPUT EXPRS:3 | 4"));
|
||||
Assert.assertTrue(explainString.contains("OUTPUT EXPRS:CAST(`a`.`aid` AS INT) | 4"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user