[fix](planner) row policy rewriter generate wrong plan on join table ref (#30233)

This commit is contained in:
morrySnow
2024-01-23 13:59:04 +08:00
committed by yiguolei
parent 8a8c0ec992
commit 9a8bcf2b1b
2 changed files with 53 additions and 1 deletions

View File

@ -1338,7 +1338,17 @@ public class StmtRewriter {
null,
null,
LimitElement.NO_LIMIT);
selectStmt.fromClause.set(i, new InlineViewRef(tableRef.getAliasAsName().getTbl(), stmt));
InlineViewRef inlineViewRef = new InlineViewRef(tableRef.getAliasAsName().getTbl(), stmt);
inlineViewRef.setJoinOp(tableRef.joinOp);
inlineViewRef.setLeftTblRef(tableRef.leftTblRef);
inlineViewRef.setOnClause(tableRef.onClause);
tableRef.joinOp = null;
tableRef.leftTblRef = null;
tableRef.onClause = null;
if (selectStmt.fromClause.size() > i + 1) {
selectStmt.fromClause.get(i + 1).setLeftTblRef(inlineViewRef);
}
selectStmt.fromClause.set(i, inlineViewRef);
selectStmt.analyze(analyzer);
reAnalyze = true;
}