mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 05:52:24 -05:00
few more little tweaks
This commit is contained in:
parent
365b9efb12
commit
dd3a32acdb
1 changed files with 25 additions and 5 deletions
|
|
@ -136,13 +136,13 @@ func init() {
|
|||
if percentDone <= 100 {
|
||||
log.Infof(
|
||||
ctx,
|
||||
"[updated %d total rows, now @ ~%.0f rows/s] done ~%.2f%% of statuses",
|
||||
"[~%.0f rows/s; updated %d total rows] migrated ~%.2f%% of statuses",
|
||||
updatedRowsTotal, rowsPerSecond, percentDone,
|
||||
)
|
||||
} else {
|
||||
log.Infof(
|
||||
ctx,
|
||||
"[updated %d total rows, now @ ~%.0f rows/s] almost done... ",
|
||||
"[~%.0f rows/s; updated %d total rows] almost done... ",
|
||||
updatedRowsTotal, rowsPerSecond,
|
||||
)
|
||||
}
|
||||
|
|
@ -268,14 +268,33 @@ func (sr *statusRethreader) rethreadStatus(ctx context.Context, tx bun.Tx, statu
|
|||
// This may have changed from
|
||||
// the initial batch selection
|
||||
// to the rethreadStatus() call.
|
||||
upToDateValues := make(map[string]any, 3)
|
||||
if err := tx.NewSelect().
|
||||
Model(status).
|
||||
Column("in_reply_to_id", "thread_id").
|
||||
TableExpr("? AS ?", bun.Ident("statuses"), bun.Ident("status")).
|
||||
Column("in_reply_to_id", "thread_id", "thread_id_new").
|
||||
Where("? = ?", bun.Ident("id"), status.ID).
|
||||
Scan(ctx); err != nil {
|
||||
Scan(ctx, &upToDateValues); err != nil {
|
||||
return 0, gtserror.Newf("error selecting status: %w", err)
|
||||
}
|
||||
|
||||
// If we've just threaded this status by setting
|
||||
// thread_id_new, then by definition anything we
|
||||
// could find from the entire thread must now be
|
||||
// threaded, so we can save some database calls
|
||||
// by skipping iterating up + down from here.
|
||||
if v, ok := upToDateValues["thread_id_new"]; ok && v.(string) != id.Lowest {
|
||||
log.Debug(ctx, "skipping just rethreaded status")
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
// Set up-to-date values on the status.
|
||||
if inReplyToID, ok := upToDateValues["in_reply_to_id"]; ok && inReplyToID != nil {
|
||||
status.InReplyToID = inReplyToID.(string)
|
||||
}
|
||||
if threadID, ok := upToDateValues["thread_id"]; ok && threadID != nil {
|
||||
status.ThreadID = threadID.(string)
|
||||
}
|
||||
|
||||
// status and thread ID cursor
|
||||
// index values. these are used
|
||||
// to keep track of newly loaded
|
||||
|
|
@ -328,6 +347,7 @@ func (sr *statusRethreader) rethreadStatus(ctx context.Context, tx bun.Tx, statu
|
|||
// batch of statuses is already correctly
|
||||
// threaded. Then we have nothing to do!
|
||||
if sr.allThreaded && len(sr.threadIDs) == 1 {
|
||||
log.Debug(ctx, "skipping just rethreaded thread")
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue