Skip to content

Commit 50c84f2

Browse files
authored
reduce creation of new strings and []string (#9681)
1 parent eff9d06 commit 50c84f2

File tree

6 files changed

+27
-18
lines changed

6 files changed

+27
-18
lines changed

go/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ require (
6060
github.com/dolthub/aws-sdk-go-ini-parser v0.0.0-20250305001723-2821c37f6c12
6161
github.com/dolthub/eventsapi_schema v0.0.0-20250725194025-a087efa1ee55
6262
github.com/dolthub/flatbuffers/v23 v23.3.3-dh.2
63-
github.com/dolthub/go-mysql-server v0.20.1-0.20250818194000-30de574d718b
63+
github.com/dolthub/go-mysql-server v0.20.1-0.20250819180839-f9276850cef1
6464
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63
6565
github.com/edsrzf/mmap-go v1.2.0
6666
github.com/esote/minmaxheap v1.0.0

go/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,8 @@ github.com/dolthub/fslock v0.0.3 h1:iLMpUIvJKMKm92+N1fmHVdxJP5NdyDK5bK7z7Ba2s2U=
213213
github.com/dolthub/fslock v0.0.3/go.mod h1:QWql+P17oAAMLnL4HGB5tiovtDuAjdDTPbuqx7bYfa0=
214214
github.com/dolthub/go-icu-regex v0.0.0-20250327004329-6799764f2dad h1:66ZPawHszNu37VPQckdhX1BPPVzREsGgNxQeefnlm3g=
215215
github.com/dolthub/go-icu-regex v0.0.0-20250327004329-6799764f2dad/go.mod h1:ylU4XjUpsMcvl/BKeRRMXSH7e7WBrPXdSLvnRJYrxEA=
216-
github.com/dolthub/go-mysql-server v0.20.1-0.20250818194000-30de574d718b h1:DLcpOTZFSgS4A+6fuIYUVqMw/Bt+PFbXnTrJNyuMvmg=
217-
github.com/dolthub/go-mysql-server v0.20.1-0.20250818194000-30de574d718b/go.mod h1:J+ixF8s/kL8x8W8sQh4UNmufcyFOeIi/FPo+MwAjUcU=
216+
github.com/dolthub/go-mysql-server v0.20.1-0.20250819180839-f9276850cef1 h1:UMjo0IYGs2znWytcTIcoqZg8SjvtrcgM9yORi00/pUE=
217+
github.com/dolthub/go-mysql-server v0.20.1-0.20250819180839-f9276850cef1/go.mod h1:J+ixF8s/kL8x8W8sQh4UNmufcyFOeIi/FPo+MwAjUcU=
218218
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63 h1:OAsXLAPL4du6tfbBgK0xXHZkOlos63RdKYS3Sgw/dfI=
219219
github.com/dolthub/gozstd v0.0.0-20240423170813-23a2903bca63/go.mod h1:lV7lUeuDhH5thVGDCKXbatwKy2KW80L4rMT46n+Y2/Q=
220220
github.com/dolthub/ishell v0.0.0-20240701202509-2b217167d718 h1:lT7hE5k+0nkBdj/1UOSFwjWpNxf+LCApbRHgnCA17XE=

go/libraries/doltcore/sqle/database.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ type Database struct {
7171
gs dsess.GlobalStateImpl
7272
editOpts editor.Options
7373
revision string
74+
revName string
7475
revType dsess.RevisionType
7576
}
7677

@@ -125,6 +126,7 @@ func (r ReadOnlyDatabase) WithBranchRevision(requestedName string, branchSpec ds
125126
func (db Database) WithBranchRevision(requestedName string, branchSpec dsess.SessionDatabaseBranchSpec) (dsess.SqlDatabase, error) {
126127
db.rsr, db.rsw = branchSpec.RepoState, branchSpec.RepoState
127128
db.revision = branchSpec.Branch
129+
db.revName = db.baseName + dsess.DbRevisionDelimiter + branchSpec.Branch
128130
db.revType = dsess.RevisionTypeBranch
129131
db.requestedName = requestedName
130132

@@ -174,6 +176,7 @@ func NewDatabase(ctx context.Context, name string, dbData env.DbData[context.Con
174176

175177
return Database{
176178
baseName: name,
179+
revName: name,
177180
requestedName: name,
178181
ddb: dbData.Ddb,
179182
rsr: forwardCtxDbData{dbData.Rsr},
@@ -228,10 +231,7 @@ func (db Database) AliasedName() string {
228231
// RevisionQualifiedName returns the name of this database including its revision qualifier, if any. This method should
229232
// be used whenever accessing internal state of a database and its tables.
230233
func (db Database) RevisionQualifiedName() string {
231-
if db.revision == "" {
232-
return db.baseName
233-
}
234-
return db.baseName + dsess.DbRevisionDelimiter + db.revision
234+
return db.revName
235235
}
236236

237237
func (db Database) RequestedName() string {

go/libraries/doltcore/sqle/database_provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1627,6 +1627,7 @@ func revisionDbForTag(ctx context.Context, srcDb Database, revSpec string, reque
16271627
rsr: srcDb.DbData().Rsr,
16281628
editOpts: srcDb.editOpts,
16291629
revision: revSpec,
1630+
revName: baseName + dsess.DbRevisionDelimiter + revSpec,
16301631
revType: dsess.RevisionTypeTag,
16311632
}}, nil
16321633
}
@@ -1670,6 +1671,7 @@ func revisionDbForCommit(ctx context.Context, srcDb Database, revSpec string, re
16701671
rsr: srcDb.DbData().Rsr,
16711672
editOpts: srcDb.editOpts,
16721673
revision: revSpec,
1674+
revName: baseName + dsess.DbRevisionDelimiter + revSpec,
16731675
revType: dsess.RevisionTypeCommit,
16741676
}}, nil
16751677
}

go/libraries/doltcore/sqle/index/dolt_index.go

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,9 @@ type doltIndex struct {
570570
tblName string
571571
dbName string
572572

573-
columns []schema.Column
573+
columns []schema.Column
574+
colExprTypes []sql.ColumnExpressionType
575+
colExprNames []string
574576

575577
indexSch schema.Schema
576578
tableSch schema.Schema
@@ -656,14 +658,16 @@ func (di *doltIndex) CanSupportOrderBy(expr sql.Expression) bool {
656658

657659
// ColumnExpressionTypes implements the interface sql.Index.
658660
func (di *doltIndex) ColumnExpressionTypes() []sql.ColumnExpressionType {
659-
cets := make([]sql.ColumnExpressionType, len(di.columns))
660-
for i, col := range di.columns {
661-
cets[i] = sql.ColumnExpressionType{
662-
Expression: di.tblName + "." + col.Name,
663-
Type: col.TypeInfo.ToSqlType(),
661+
if di.colExprTypes == nil {
662+
di.colExprTypes = make([]sql.ColumnExpressionType, len(di.columns))
663+
for i, col := range di.columns {
664+
di.colExprTypes[i] = sql.ColumnExpressionType{
665+
Expression: di.tblName + "." + col.Name,
666+
Type: col.TypeInfo.ToSqlType(),
667+
}
664668
}
665669
}
666-
return cets
670+
return di.colExprTypes
667671
}
668672

669673
// ExtendedColumnExpressionTypes implements the interface sql.ExtendedIndex.
@@ -985,11 +989,13 @@ func (di *doltIndex) Database() string {
985989

986990
// Expressions implements sql.Index
987991
func (di *doltIndex) Expressions() []string {
988-
strs := make([]string, len(di.columns))
989-
for i, col := range di.columns {
990-
strs[i] = di.tblName + "." + col.Name
992+
if di.colExprNames == nil {
993+
di.colExprNames = make([]string, len(di.columns))
994+
for i, col := range di.columns {
995+
di.colExprNames[i] = di.tblName + "." + col.Name
996+
}
991997
}
992-
return strs
998+
return di.colExprNames
993999
}
9941000

9951001
// ExtendedExpressions implements sql.ExtendedIndex

go/libraries/doltcore/sqle/read_replica_database.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ func NewReadReplicaDatabase(ctx context.Context, db Database, remoteName string,
8989
func (rrd ReadReplicaDatabase) WithBranchRevision(requestedName string, branchSpec dsess.SessionDatabaseBranchSpec) (dsess.SqlDatabase, error) {
9090
rrd.rsr, rrd.rsw = branchSpec.RepoState, branchSpec.RepoState
9191
rrd.revision = branchSpec.Branch
92+
rrd.revName = rrd.baseName + dsess.DbRevisionDelimiter + branchSpec.Branch
9293
rrd.revType = dsess.RevisionTypeBranch
9394
rrd.requestedName = requestedName
9495

0 commit comments

Comments
 (0)