feat: optimize the FindUnreferencedPackages package query

Replace a double select with a simple select.

The complication originates from the initial implementation which
deleted packages instead of selecting them. It was justified to
workaround a problem in MySQL. But it is just a waste of resources
when collecting a list of IDs.
This commit is contained in:
Earl Warren 2024-07-27 15:29:53 +02:00
parent dac78913aa
commit ff6aceaeac
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
3 changed files with 18 additions and 16 deletions

View file

@ -154,15 +154,15 @@ func CleanupExpiredData(outerCtx context.Context, olderThan time.Duration) error
return err
}
ps, err := packages_model.FindUnreferencedPackages(ctx)
pIDs, err := packages_model.FindUnreferencedPackages(ctx)
if err != nil {
return err
}
for _, p := range ps {
if err := packages_model.DeleteAllProperties(ctx, packages_model.PropertyTypePackage, p.ID); err != nil {
for _, pID := range pIDs {
if err := packages_model.DeleteAllProperties(ctx, packages_model.PropertyTypePackage, pID); err != nil {
return err
}
if err := packages_model.DeletePackageByID(ctx, p.ID); err != nil {
if err := packages_model.DeletePackageByID(ctx, pID); err != nil {
return err
}
}