mirror of https://github.com/pixelfed/pixelfed
fix/2fa-removal-requires-code
staging
l10n_crowdin_translations
dev
feature/configurable-min-registration-age
configcache-clean-rebased
dockerfile-compile-ffmpeg-x264-x265
fix/media-storage-optimized-charge
fix/dm-remote-delete-media-leak
feat/emoji-cloud-storage-v2
feat/story-cloud-storage-v2
fix/hashtags-outside-bmp
copilot/review-old-issues
groups
vue3
v0.1.9
v0.10.0
v0.10.1
v0.10.10
v0.10.2
v0.10.3
v0.10.4
v0.10.5
v0.10.6
v0.10.7
v0.10.8
v0.10.9
v0.11.0
v0.11.1
v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.2
v0.11.3
v0.11.4
v0.11.5
v0.11.6
v0.11.7
v0.11.8
v0.11.9
v0.12.0
v0.12.1
v0.12.10
v0.12.11
v0.12.12
v0.12.2
v0.12.3
v0.12.4
v0.12.5
v0.12.6
v0.12.7
v0.12.8
v0.12.9
v0.13.0
v0.14.0
v0.14.1
v0.14.2
v0.14.3
v0.5.9
v0.6.0
v0.6.1
v0.7.6
v0.8.0
v0.8.5
v0.8.6
v0.9.0
v0.9.4
v0.9.5
v0.9.6
${ noResults }
1 Commits (2c0ba48b86885295c85a2e7f3e6e45666c54bebb)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
c4e5b96d25 |
Stream deletions with cursor and batch notification lookups in delete jobs
The status- and account-deletion jobs loaded whole collections with ->get() and then looped, running a per-row Notification lookup inside each iteration. - StatusDelete / RemoteStatusDelete: resolve associated DirectMessage and MediaTag ids, fetch their notifications in a single whereIn query, clear each via cursor (NotificationService::del must run per row for cache/redis cleanup), then bulk delete the DMs and media tags. - DeleteAccountPipeline / DeleteRemoteProfilePipeline: stream Story and Collection deletions with cursor() instead of loading every row into memory. Per-row file unlink and item deletes are preserved. Adds StatusDeleteCleanupTest covering DM + notification cleanup, media tag + notification cleanup, and the no-associations case. |
3 weeks ago |