Code review comment: why cache whole planner? i think execute point query do not need planner at all

Code under review:
public void run(ConnectContext ctx, StmtExecutor executor) throws Exception {
        PreparedStatementContext preparedStmtCtx = ctx.getPreparedStementContext(stmtName);
        if (null == preparedStmtCtx) {
            throw new AnalysisException(
                    "prepare statement " + stmtName + " not found,  maybe expired");
        }
        PrepareCommand prepareCommand = (PrepareCommand) preparedStmtCtx.command;
        LogicalPlanAdapter planAdapter = new LogicalPlanAdapter(prepareCommand.getLogicalPlan(), executor.getContext()
                .getStatementContext());
        executor.setParsedStmt(planAdapter);
        
        
        boolean needAnalyze = !executor.getContext().getStatementContext().isShortCircuitQuery()
                || (preparedStmtCtx.shortCircuitQueryContext.isPresent()
                    && preparedStmtCtx.shortCircuitQueryContext.get().tbl.getBaseSchemaVersion()
                != preparedStmtCtx.shortCircuitQueryContext.get().schemaVersion);
        if (needAnalyze) {
            
            preparedStmtCtx.shortCircuitQueryContext = Optional.empty();
            statementContext.setShortCircuitQueryContext(null);
            executor.execute();
            if (executor.getContext().getStatementContext().isShortCircuitQuery()) {
                
                preparedStmtCtx.shortCircuitQueryContext = Optional.of(
                        new ShortCircuitQueryContext(executor.planner(), (Queriable) executor.getParsedStmt()));
                statementContext.setShortCircuitQueryContext(preparedStmtCtx.shortCircuitQueryContext.get());
            }
            return;
        }
        PointQueryExecutor.directExecuteShortCircuitQuery(executor, preparedStmtCtx, statementContext);
    }

Line commented on: new ShortCircuitQueryContext(executor.planner(), (Queriable) executor.getParsedStmt()));

Revised code:
public void run(ConnectContext ctx, StmtExecutor executor) throws Exception {
        PreparedStatementContext preparedStmtCtx = ctx.getPreparedStementContext(stmtName);
        if (null == preparedStmtCtx) {
            throw new AnalysisException(
                    "prepare statement " + stmtName + " not found,  maybe expired");
        }
        PrepareCommand prepareCommand = (PrepareCommand) preparedStmtCtx.command;
        LogicalPlanAdapter planAdapter = new LogicalPlanAdapter(prepareCommand.getLogicalPlan(), executor.getContext()
                .getStatementContext());
        executor.setParsedStmt(planAdapter);
        
        
        boolean needAnalyze = !executor.getContext().getStatementContext().isShortCircuitQuery()
                || (preparedStmtCtx.shortCircuitQueryContext.isPresent()
                    && preparedStmtCtx.shortCircuitQueryContext.get().tbl.getBaseSchemaVersion()
                != preparedStmtCtx.shortCircuitQueryContext.get().schemaVersion);
        if (needAnalyze) {
            
            preparedStmtCtx.shortCircuitQueryContext = Optional.empty();
            statementContext.setShortCircuitQueryContext(null);
            executor.execute();
            if (executor.getContext().getStatementContext().isShortCircuitQuery()) {
                
                preparedStmtCtx.shortCircuitQueryContext = Optional.of(
                        new ShortCircuitQueryContext(executor.planner(), (Queriable) executor.getParsedStmt()));
                statementContext.setShortCircuitQueryContext(preparedStmtCtx.shortCircuitQueryContext.get());
            }
            return;
        }
        PointQueryExecutor.directExecuteShortCircuitQuery(executor, preparedStmtCtx, statementContext);
    }