[performance] convert enum strings to ints (#3558)

* convert statuses.visibility and notifications.notification_type columns from type string -> int for performance / space savings

* fix test trying to compare string to int

* fix instance count query using string literal instead of gtsmodel const type

* ensure a default value is always set

* also migrate the account settings and sin bin status tables

* initialize maps outside loops and place into singular enum mapping creation func

* use int16 for enum types

* update sinbinstatus creation to be from a snapshot at initial creation

* add snapshot of poll type at creation time
This commit is contained in:
kim 2024-11-25 13:48:59 +00:00 committed by GitHub
commit cac9d65029
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 940 additions and 91 deletions

View file

@ -265,8 +265,8 @@ func (r *relationshipDB) AcceptFollowRequest(ctx context.Context, sourceAccountI
}
// Delete original follow request notification
if err := r.state.DB.DeleteNotifications(ctx, []string{
string(gtsmodel.NotificationFollowRequest),
if err := r.state.DB.DeleteNotifications(ctx, []gtsmodel.NotificationType{
gtsmodel.NotificationFollowRequest,
}, targetAccountID, sourceAccountID); err != nil {
return nil, err
}
@ -281,8 +281,8 @@ func (r *relationshipDB) RejectFollowRequest(ctx context.Context, sourceAccountI
}
// Delete follow request notification
return r.state.DB.DeleteNotifications(ctx, []string{
string(gtsmodel.NotificationFollowRequest),
return r.state.DB.DeleteNotifications(ctx, []gtsmodel.NotificationType{
gtsmodel.NotificationFollowRequest,
}, targetAccountID, sourceAccountID)
}