From b8a6a7a3a671563b74e8f1831061738e559765d6 Mon Sep 17 00:00:00 2001 From: lzmhhh123 Date: Tue, 29 Oct 2019 15:36:41 +0800 Subject: [PATCH] address --- planner/core/exhaust_physical_plans.go | 2 +- planner/core/find_best_task.go | 6 +++--- statistics/table.go | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/planner/core/exhaust_physical_plans.go b/planner/core/exhaust_physical_plans.go index 48bbaa86a12ce..0f31e3c8afef3 100644 --- a/planner/core/exhaust_physical_plans.go +++ b/planner/core/exhaust_physical_plans.go @@ -679,7 +679,7 @@ func (p *LogicalJoin) constructInnerTableScanTask( for i := range ds.stats.Cardinality { ds.stats.Cardinality[i] = 1 } - rowSize := ds.TblColHists.GetTableAvgRowSize(ds.TblCols, ts.StoreType, ds.tableInfo.PKIsHandle) + rowSize := ds.TblColHists.GetTableAvgRowSize(ds.TblCols, ts.StoreType, true) sessVars := ds.ctx.GetSessionVars() copTask := &copTask{ tablePlan: ts, diff --git a/planner/core/find_best_task.go b/planner/core/find_best_task.go index 9270c8da1c8eb..780869f4a2bea 100644 --- a/planner/core/find_best_task.go +++ b/planner/core/find_best_task.go @@ -587,7 +587,7 @@ func (ds *DataSource) buildIndexMergeTableScan(prop *property.PhysicalProperty, } } } - rowSize := ds.TblColHists.GetTableAvgRowSize(ds.TblCols, ts.StoreType, ds.tableInfo.PKIsHandle) + rowSize := ds.TblColHists.GetTableAvgRowSize(ds.TblCols, ts.StoreType, true) partialCost += totalRowCount * rowSize * sessVars.ScanFactor ts.stats = ds.tableStats.ScaleByExpectCnt(totalRowCount) if ds.statisticTable.Pseudo { @@ -1069,9 +1069,9 @@ func (ds *DataSource) getOriginalPhysicalTableScan(prop *property.PhysicalProper ts.stats = ds.tableStats.ScaleByExpectCnt(rowCount) var rowSize float64 if ts.StoreType == kv.TiKV { - rowSize = ds.TblColHists.GetTableAvgRowSize(ds.TblCols, ts.StoreType, ds.tableInfo.PKIsHandle) + rowSize = ds.TblColHists.GetTableAvgRowSize(ds.TblCols, ts.StoreType, true) } else { - rowSize = ds.TblColHists.GetTableAvgRowSize(ts.Schema().Columns, ts.StoreType, ds.tableInfo.PKIsHandle) + rowSize = ds.TblColHists.GetTableAvgRowSize(ts.Schema().Columns, ts.StoreType, ds.handleCol != nil) } sessVars := ds.ctx.GetSessionVars() cost := rowCount * rowSize * sessVars.ScanFactor diff --git a/statistics/table.go b/statistics/table.go index aaee3d4571306..da563044dc2ad 100644 --- a/statistics/table.go +++ b/statistics/table.go @@ -691,7 +691,7 @@ func (coll *HistColl) GetAvgRowSize(cols []*expression.Column, isEncodedKey bool } // GetTableAvgRowSize computes average row size for a table scan, exclude the index key-value pairs. -func (coll *HistColl) GetTableAvgRowSize(cols []*expression.Column, storeType kv.StoreType, pkIsHandle bool) (size float64) { +func (coll *HistColl) GetTableAvgRowSize(cols []*expression.Column, storeType kv.StoreType, handleInCols bool) (size float64) { size = coll.GetAvgRowSize(cols, false) switch storeType { case kv.TiKV: @@ -699,7 +699,7 @@ func (coll *HistColl) GetTableAvgRowSize(cols []*expression.Column, storeType kv // The `cols` for TiKV always contain the row_id, so prefix row size subtract its length. size -= 8 case kv.TiFlash: - if !pkIsHandle { + if !handleInCols { size += 8 /* row_id length */ } }