[fix](block rule) throw npe when use Nereids explain or fallback (#24182)
This commit is contained in:
@ -81,7 +81,7 @@ public class NereidsPlanner extends Planner {
|
||||
public static final Logger LOG = LogManager.getLogger(NereidsPlanner.class);
|
||||
private CascadesContext cascadesContext;
|
||||
private final StatementContext statementContext;
|
||||
private List<ScanNode> scanNodeList = null;
|
||||
private final List<ScanNode> scanNodeList = Lists.newArrayList();
|
||||
private DescriptorTable descTable;
|
||||
|
||||
private Plan parsedPlan;
|
||||
@ -132,7 +132,7 @@ public class NereidsPlanner extends Planner {
|
||||
}
|
||||
PlanFragment root = physicalPlanTranslator.translatePlan(physicalPlan);
|
||||
|
||||
scanNodeList = planTranslatorContext.getScanNodes();
|
||||
scanNodeList.addAll(planTranslatorContext.getScanNodes());
|
||||
descTable = planTranslatorContext.getDescTable();
|
||||
fragments = new ArrayList<>(planTranslatorContext.getPlanFragments());
|
||||
for (int seq = 0; seq < fragments.size(); seq++) {
|
||||
|
||||
@ -2569,6 +2569,7 @@ public class StmtExecutor {
|
||||
} catch (Exception e) {
|
||||
LOG.warn("fall back to legacy planner, because: {}", e.getMessage(), e);
|
||||
parsedStmt = null;
|
||||
planner = null;
|
||||
context.getState().setNereids(false);
|
||||
analyzer = new Analyzer(context.getEnv(), context);
|
||||
analyze(context.getSessionVariable().toThrift());
|
||||
|
||||
Reference in New Issue
Block a user