From 4d8368e9abf0bdc022af1794ef11b2ba26ecb9ef Mon Sep 17 00:00:00 2001 From: Shenghui Wu <793703860@qq.com> Date: Tue, 5 Mar 2024 19:11:13 +0800 Subject: [PATCH] This is an automated cherry-pick of #51455 Signed-off-by: ti-chi-bot --- executor/builder.go | 20 +++++++++++++++++--- executor/infoschema_reader.go | 4 ++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/executor/builder.go b/executor/builder.go index a184df571650d..6490dd0611a21 100644 --- a/executor/builder.go +++ b/executor/builder.go @@ -1950,14 +1950,28 @@ func (b *executorBuilder) buildMemTable(v *plannercore.PhysicalMemTable) Executo strings.ToLower(infoschema.TableMemoryUsage), strings.ToLower(infoschema.TableMemoryUsageOpsHistory), strings.ToLower(infoschema.ClusterTableMemoryUsage), +<<<<<<< HEAD:executor/builder.go strings.ToLower(infoschema.ClusterTableMemoryUsageOpsHistory): +======= + strings.ToLower(infoschema.ClusterTableMemoryUsageOpsHistory), + strings.ToLower(infoschema.TableResourceGroups), + strings.ToLower(infoschema.TableRunawayWatches), + strings.ToLower(infoschema.TableCheckConstraints), + strings.ToLower(infoschema.TableTiDBCheckConstraints), + strings.ToLower(infoschema.TableKeywords), + strings.ToLower(infoschema.TableTiDBIndexUsage), + strings.ToLower(infoschema.ClusterTableTiDBIndexUsage): + memTracker := memory.NewTracker(v.ID(), -1) + memTracker.AttachTo(b.ctx.GetSessionVars().StmtCtx.MemTracker) +>>>>>>> 4f4f911b706 (executor: add memory tracker for memtableRetriever (#51455)):pkg/executor/builder.go return &MemTableReaderExec{ baseExecutor: newBaseExecutor(b.ctx, v.Schema(), v.ID()), table: v.Table, retriever: &memtableRetriever{ - table: v.Table, - columns: v.Columns, - extractor: v.Extractor, + table: v.Table, + columns: v.Columns, + extractor: v.Extractor, + memTracker: memTracker, }, } case strings.ToLower(infoschema.TableTiDBTrx), diff --git a/executor/infoschema_reader.go b/executor/infoschema_reader.go index ff3ac832f9766..42615a2dd5d49 100644 --- a/executor/infoschema_reader.go +++ b/executor/infoschema_reader.go @@ -85,6 +85,7 @@ type memtableRetriever struct { retrieved bool initialized bool extractor plannercore.MemTablePredicateExtractor + memTracker *memory.Tracker } // retrieve implements the infoschemaRetriever interface @@ -189,6 +190,9 @@ func (e *memtableRetriever) retrieve(ctx context.Context, sctx sessionctx.Contex return nil, err } e.initialized = true + if e.memTracker != nil { + e.memTracker.Consume(calculateDatumsSize(e.rows)) + } } // Adjust the amount of each return