Skip to content

Commit c128a2d

Browse files
authored
*: fix show placement for v2 (#51577)
ref #50959
1 parent d9a3b73 commit c128a2d

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

pkg/executor/show_placement.go

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func (e *ShowExec) fetchShowPlacementForDB(ctx context.Context) (err error) {
155155
}
156156

157157
if placement != nil {
158-
state, err := fetchDBScheduleState(ctx, nil, dbInfo)
158+
state, err := e.fetchDBScheduleState(ctx, nil, dbInfo)
159159
if err != nil {
160160
return err
161161
}
@@ -332,7 +332,7 @@ func (e *ShowExec) fetchAllDBPlacements(ctx context.Context, scheduleState map[i
332332
}
333333

334334
if placement != nil {
335-
state, err := fetchDBScheduleState(ctx, scheduleState, dbInfo)
335+
state, err := e.fetchDBScheduleState(ctx, scheduleState, dbInfo)
336336
if err != nil {
337337
return err
338338
}
@@ -343,6 +343,22 @@ func (e *ShowExec) fetchAllDBPlacements(ctx context.Context, scheduleState map[i
343343
return nil
344344
}
345345

346+
func (e *ShowExec) fetchDBScheduleState(ctx context.Context, scheduleState map[int64]infosync.PlacementScheduleState, db *model.DBInfo) (infosync.PlacementScheduleState, error) {
347+
state := infosync.PlacementScheduleStateScheduled
348+
for _, table := range e.is.SchemaTables(db.Name) {
349+
tbl := table.Meta()
350+
schedule, err := fetchTableScheduleState(ctx, scheduleState, tbl)
351+
if err != nil {
352+
return state, err
353+
}
354+
state = accumulateState(state, schedule)
355+
if state != infosync.PlacementScheduleStateScheduled {
356+
break
357+
}
358+
}
359+
return state, nil
360+
}
361+
346362
type tableRowSet struct {
347363
name string
348364
rows [][]any
@@ -501,21 +517,6 @@ func fetchTableScheduleState(ctx context.Context, scheduleState map[int64]infosy
501517
return schedule, nil
502518
}
503519

504-
func fetchDBScheduleState(ctx context.Context, scheduleState map[int64]infosync.PlacementScheduleState, db *model.DBInfo) (infosync.PlacementScheduleState, error) {
505-
state := infosync.PlacementScheduleStateScheduled
506-
for _, table := range db.Tables {
507-
schedule, err := fetchTableScheduleState(ctx, scheduleState, table)
508-
if err != nil {
509-
return state, err
510-
}
511-
state = accumulateState(state, schedule)
512-
if state != infosync.PlacementScheduleStateScheduled {
513-
break
514-
}
515-
}
516-
return state, nil
517-
}
518-
519520
func accumulateState(curr, news infosync.PlacementScheduleState) infosync.PlacementScheduleState {
520521
a, b := int(curr), int(news)
521522
if a > b {

0 commit comments

Comments
 (0)