diff --git a/ddl/column_test.go b/ddl/column_test.go index df3444b332..c53a74424f 100644 --- a/ddl/column_test.go +++ b/ddl/column_test.go @@ -960,7 +960,7 @@ func (s *testColumnSuite) colDefStrToFieldType(c *C, str string) *types.FieldTyp func (s *testColumnSuite) TestFieldCase(c *C) { var fields = []string{"field", "Field"} var colDefs = make([]*ast.ColumnDef, len(fields)) - var colObjects []interface{} + colObjects := make([]interface{}, 0, len(fields)) for i, name := range fields { colDefs[i] = &ast.ColumnDef{ Name: &ast.ColumnName{ diff --git a/ddl/ddl_api.go b/ddl/ddl_api.go index ce9b1f0bce..5d1d22ff5e 100644 --- a/ddl/ddl_api.go +++ b/ddl/ddl_api.go @@ -173,7 +173,6 @@ func setColumnFlagWithConstraint(colMap map[string]*table.Column, v *ast.Constra func buildColumnsAndConstraints(ctx sessionctx.Context, colDefs []*ast.ColumnDef, constraints []*ast.Constraint, tblCharset, dbCharset string) ([]*table.Column, []*ast.Constraint, error) { - var cols []*table.Column colMap := map[string]*table.Column{} // outPriKeyConstraint is the primary key constraint out of column definition. such as: create table t1 (id int , age int, primary key(id)); var outPriKeyConstraint *ast.Constraint @@ -183,6 +182,7 @@ func buildColumnsAndConstraints(ctx sessionctx.Context, colDefs []*ast.ColumnDef break } } + cols := make([]*table.Column, 0, len(colDefs)) for i, colDef := range colDefs { col, cts, err := buildColumnAndConstraint(ctx, i, colDef, outPriKeyConstraint, tblCharset, dbCharset) if err != nil { @@ -1061,7 +1061,7 @@ func BuildTableInfoFromAST(s *ast.CreateTableStmt) (*model.TableInfo, error) { func buildTableInfoWithCheck(ctx sessionctx.Context, d *ddl, s *ast.CreateTableStmt, dbCharset string) (*model.TableInfo, error) { ident := ast.Ident{Schema: s.Table.Schema, Name: s.Table.Name} colDefs := s.Cols - var colObjects []interface{} + colObjects := make([]interface{}, 0, len(colDefs)) for _, col := range colDefs { colObjects = append(colObjects, col) } @@ -1245,7 +1245,7 @@ func (d *ddl) CreateView(ctx sessionctx.Context, s *ast.CreateViewStmt) (err err } viewInfo, cols := buildViewInfoWithTableColumns(ctx, s) - var colObjects []interface{} + colObjects := make([]interface{}, 0, len(viewInfo.Cols)) for _, col := range viewInfo.Cols { colObjects = append(colObjects, col) } diff --git a/executor/builder.go b/executor/builder.go index 6d8791255a..4138f83b7d 100644 --- a/executor/builder.go +++ b/executor/builder.go @@ -1930,7 +1930,7 @@ func (b *executorBuilder) buildWindow(v *plannercore.PhysicalWindow) *WindowExec return nil } base := newBaseExecutor(b.ctx, v.Schema(), v.ExplainID(), childExec) - var groupByItems []expression.Expression + groupByItems := make([]expression.Expression, 0, len(v.PartitionBy)) for _, item := range v.PartitionBy { groupByItems = append(groupByItems, item.Col) } diff --git a/executor/checksum.go b/executor/checksum.go index 889b40c40f..6fd4e48f8a 100644 --- a/executor/checksum.go +++ b/executor/checksum.go @@ -188,14 +188,12 @@ func newChecksumContext(db *model.DBInfo, table *model.TableInfo, startTs uint64 } func (c *checksumContext) BuildRequests(ctx sessionctx.Context) ([]*kv.Request, error) { - var reqs []*kv.Request - + reqs := make([]*kv.Request, 0, len(c.TableInfo.Indices)+1) req, err := c.buildTableRequest(ctx) if err != nil { return nil, errors.Trace(err) } reqs = append(reqs, req) - for _, indexInfo := range c.TableInfo.Indices { if indexInfo.State != model.StatePublic { continue diff --git a/executor/show.go b/executor/show.go index 03a7024574..a0ae0ce948 100644 --- a/executor/show.go +++ b/executor/show.go @@ -251,7 +251,7 @@ func (e *ShowExec) fetchShowTables() error { return ErrBadDB.GenWithStackByArgs(e.DBName) } // sort for tables - var tableNames []string + tableNames := make([]string, 0, len(e.is.SchemaTables(e.DBName))) var tableTypes = make(map[string]string) for _, v := range e.is.SchemaTables(e.DBName) { // Test with mysql.AllPrivMask means any privilege would be OK. diff --git a/infoschema/tables.go b/infoschema/tables.go index 97b316140f..e45e126c14 100644 --- a/infoschema/tables.go +++ b/infoschema/tables.go @@ -631,8 +631,8 @@ func dataForProcesslist(ctx sessionctx.Context) [][]types.Datum { } } - var records [][]types.Datum pl := sm.ShowProcessList() + records := make([][]types.Datum, 0, len(pl)) for _, pi := range pl { // If you have the PROCESS privilege, you can see all threads. // Otherwise, you can see only your own threads. @@ -704,7 +704,7 @@ var filesCols = []columnInfo{ func dataForSchemata(schemas []*model.DBInfo) [][]types.Datum { - var rows [][]types.Datum + rows := make([][]types.Datum, 0, len(schemas)) for _, schema := range schemas { @@ -1087,7 +1087,7 @@ func dataForColumns(ctx sessionctx.Context, schemas []*model.DBInfo) [][]types.D } func dataForColumnsInTable(schema *model.DBInfo, tbl *model.TableInfo) [][]types.Datum { - var rows [][]types.Datum + rows := make([][]types.Datum, 0, len(tbl.Columns)) for i, col := range tbl.Columns { var charMaxLen, charOctLen, numericPrecision, numericScale, datetimePrecision interface{} colLen, decimal := col.Flen, col.Decimal diff --git a/meta/meta.go b/meta/meta.go index d2827b2c4b..2152450959 100644 --- a/meta/meta.go +++ b/meta/meta.go @@ -677,7 +677,7 @@ func (m *Meta) GetAllHistoryDDLJobs() ([]*model.Job, error) { if err != nil { return nil, errors.Trace(err) } - var jobs []*model.Job + jobs := make([]*model.Job, 0, len(pairs)) for _, pair := range pairs { job := &model.Job{} err = job.Decode(pair.Value) diff --git a/planner/core/rule_join_elimination.go b/planner/core/rule_join_elimination.go index 55e491a920..983da726cd 100644 --- a/planner/core/rule_join_elimination.go +++ b/planner/core/rule_join_elimination.go @@ -66,7 +66,7 @@ func (o *outerJoinEliminator) tryToEliminateOuterJoin(p *LogicalJoin, aggCols [] // extract join keys as a schema for inner child of a outer join func (o *outerJoinEliminator) extractInnerJoinKeys(join *LogicalJoin, innerChildIdx int) *expression.Schema { - var joinKeys []*expression.Column + joinKeys := make([]*expression.Column, 0, len(join.EqualConditions)) for _, eqCond := range join.EqualConditions { joinKeys = append(joinKeys, eqCond.GetArgs()[innerChildIdx].(*expression.Column)) } diff --git a/server/http_handler.go b/server/http_handler.go index b12c2806ae..0679e7b07d 100644 --- a/server/http_handler.go +++ b/server/http_handler.go @@ -1580,7 +1580,7 @@ func (h allServerInfoHandler) ServeHTTP(w http.ResponseWriter, req *http.Request return } allVersionsMap := map[domain.ServerVersionInfo]struct{}{} - var allVersions []domain.ServerVersionInfo + allVersions := make([]domain.ServerVersionInfo, 0, len(allServersInfo)) for _, v := range allServersInfo { if _, ok := allVersionsMap[v.ServerVersionInfo]; ok { continue diff --git a/server/http_handler_test.go b/server/http_handler_test.go index d3106df0ed..1b90271a0a 100644 --- a/server/http_handler_test.go +++ b/server/http_handler_test.go @@ -71,7 +71,7 @@ func (ts *HTTPHandlerTestSuite) TestRegionIndexRange(c *C) { types.NewBytesDatum([]byte("foobar")), types.NewFloat64Datum(-100.25), } - var expectIndexValues []string + expectIndexValues := make([]string, 0, len(indexValues)) for _, v := range indexValues { str, err := v.ToString() if err != nil { diff --git a/store/mockstore/mocktikv/cluster.go b/store/mockstore/mocktikv/cluster.go index 3b1b726383..d9f9cf02cb 100644 --- a/store/mockstore/mocktikv/cluster.go +++ b/store/mockstore/mocktikv/cluster.go @@ -417,7 +417,7 @@ func (c *Cluster) firstStoreID() uint64 { // getRegionsCoverRange gets regions in the cluster that has intersection with [start, end). func (c *Cluster) getRegionsCoverRange(start, end MvccKey) []*Region { - var regions []*Region + regions := make([]*Region, 0, len(c.regions)) for _, region := range c.regions { onRight := bytes.Compare(end, region.Meta.StartKey) <= 0 onLeft := bytes.Compare(region.Meta.EndKey, start) <= 0 diff --git a/store/mockstore/mocktikv/mvcc_leveldb.go b/store/mockstore/mocktikv/mvcc_leveldb.go index ead3aae56f..e4cfe78a34 100644 --- a/store/mockstore/mocktikv/mvcc_leveldb.go +++ b/store/mockstore/mocktikv/mvcc_leveldb.go @@ -355,7 +355,7 @@ func (mvcc *MVCCLevelDB) BatchGet(ks [][]byte, startTS uint64, isoLevel kvrpcpb. mvcc.mu.RLock() defer mvcc.mu.RUnlock() - var pairs []Pair + pairs := make([]Pair, 0, len(ks)) for _, k := range ks { v, err := mvcc.getValue(k, startTS, isoLevel) if v == nil && err == nil { @@ -959,7 +959,7 @@ func (mvcc *MVCCLevelDB) RawBatchGet(keys [][]byte) [][]byte { mvcc.mu.Lock() defer mvcc.mu.Unlock() - var values [][]byte + values := make([][]byte, 0, len(keys)) for _, key := range keys { value, err := mvcc.db.Get(key, nil) terror.Log(err) diff --git a/store/tikv/delete_range_test.go b/store/tikv/delete_range_test.go index b0467f35b1..1feb88c7ea 100644 --- a/store/tikv/delete_range_test.go +++ b/store/tikv/delete_range_test.go @@ -64,8 +64,8 @@ func (s *testDeleteRangeSuite) checkData(c *C, expectedData map[string]string) { c.Assert(err, IsNil) // Print log - var actualKeys []string - var expectedKeys []string + actualKeys := make([]string, 0, len(data)) + expectedKeys := make([]string, 0, len(expectedData)) for key := range data { actualKeys = append(actualKeys, key) } diff --git a/store/tikv/lock_resolver.go b/store/tikv/lock_resolver.go index abc4e5cd58..d50b1a4ead 100644 --- a/store/tikv/lock_resolver.go +++ b/store/tikv/lock_resolver.go @@ -198,7 +198,7 @@ func (lr *LockResolver) BatchResolveLocks(bo *Backoffer, locks []*Lock, loc Regi zap.Duration("cost time", time.Since(startTime)), zap.Int("num of txn", len(txnInfos))) - var listTxnInfos []*kvrpcpb.TxnInfo + listTxnInfos := make([]*kvrpcpb.TxnInfo, 0, len(txnInfos)) for txnID, status := range txnInfos { listTxnInfos = append(listTxnInfos, &kvrpcpb.TxnInfo{ Txn: txnID, diff --git a/tablecodec/tablecodec_test.go b/tablecodec/tablecodec_test.go index 60448b9437..6285505e5b 100644 --- a/tablecodec/tablecodec_test.go +++ b/tablecodec/tablecodec_test.go @@ -353,7 +353,7 @@ func (s *testTableCodecSuite) TestDecodeIndexKey(c *C) { // Type: mysql.TypeTimestamp, // }), } - var valueStrs []string + valueStrs := make([]string, 0, len(values)) for _, v := range values { str, err := v.ToString() if err != nil { diff --git a/types/datum.go b/types/datum.go index 92bfb65ec8..832e0f6210 100644 --- a/types/datum.go +++ b/types/datum.go @@ -1798,7 +1798,7 @@ func handleTruncateError(sc *stmtctx.StatementContext) error { // DatumsToString converts several datums to formatted string. func DatumsToString(datums []Datum, handleSpecialValue bool) (string, error) { - var strs []string + strs := make([]string, 0, len(datums)) for _, datum := range datums { if handleSpecialValue { switch datum.Kind() {