diff --git a/planner/core/common_plans.go b/planner/core/common_plans.go index 9feffedf2911c..f655656cd89ec 100644 --- a/planner/core/common_plans.go +++ b/planner/core/common_plans.go @@ -281,6 +281,7 @@ func (e *Execute) OptimizePreparedPlan(ctx context.Context, sctx sessionctx.Cont // schema version like prepared plan cache key prepared.CachedPlan = nil preparedObj.Executor = nil + preparedObj.ColumnInfos = nil // If the schema version has changed we need to preprocess it again, // if this time it failed, the real reason for the error is schema changed. // Example: diff --git a/session/session.go b/session/session.go index 21cb98370abe6..45381e24f936e 100644 --- a/session/session.go +++ b/session/session.go @@ -1924,6 +1924,7 @@ func (s *session) IsCachedExecOk(ctx context.Context, preparedStmt *plannercore. is := s.GetInfoSchema().(infoschema.InfoSchema) if prepared.SchemaVersion != is.SchemaMetaVersion() { prepared.CachedPlan = nil + preparedStmt.ColumnInfos = nil return false, nil } }