mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-12-15 11:46:45 +00:00
84279f6a6a
* improvements to caching for lists and relationship to accounts / follows * fix nil panic in AddToList() * ensure list related caches are correctly invalidated * ensure returned ID lists are ordered correctly * bump go-structr to v0.8.9 (returns early if zero uncached keys to be loaded) * remove zero checks in uncached key load functions (go-structr now handles this) * fix issues after rebase on upstream/main * update the expected return order of CSV exports (since list entries are now down by entry creation date) * rename some funcs, allow deleting list entries for multiple follow IDs at a time, fix up more tests * use returning statements on delete to get cache invalidation info * fixes to recent database delete changes * fix broken list entries delete sql * remove unused db function * update remainder of delete functions to behave in similar way, some other small tweaks * fix delete user sql, allow returning on err no entries * uncomment + fix list database tests * update remaining list tests * update envparsing test * add comments to each specific key being invalidated * add more cache invalidation explanatory comments * whoops; actually delete poll votes from database in the DeletePollByID() func * remove added but-commented-out field * improved comment regarding paging being disabled * make cache invalidation comments match what's actually happening * fix up delete query comments to match what is happening * rename function to read a bit better * don't use ErrNoEntries on delete when not needed (it's only needed for a RETURNING call) * update function name in test * move list exclusivity check to AFTER eligibility check. use log.Panic() instead of panic() * use the poll_id column in poll_votes for selecting votes in poll ID * fix function name |
||
---|---|---|
.. | ||
account.go | ||
accountnote.go | ||
accountsettings.go | ||
accountstats.go | ||
adminaction.go | ||
advancedmigration.go | ||
application.go | ||
block.go | ||
client.go | ||
conversation.go | ||
domainallow.go | ||
domainblock.go | ||
domainpermission.go | ||
emaildomainblock.go | ||
emoji.go | ||
emojicategory.go | ||
filter.go | ||
follow.go | ||
followrequest.go | ||
headerfilter.go | ||
instance.go | ||
interaction.go | ||
interactionpolicy.go | ||
list.go | ||
marker.go | ||
mediaattachment.go | ||
mention.go | ||
move.go | ||
notification.go | ||
poll.go | ||
README.md | ||
report.go | ||
routersession.go | ||
rule.go | ||
sinbinstatus.go | ||
status.go | ||
statusbookmark.go | ||
statusfave.go | ||
statusmute.go | ||
tag.go | ||
thread.go | ||
threadmute.go | ||
token.go | ||
tombstone.go | ||
user.go | ||
usermute.go | ||
workertask.go |
A note on when we should set data structures linked to objects in the database to use the
bun nullzero
tag -- this should only be done if the member type is a pointer, or if the
this primitive type is literally invalid with an empty value (e.g. media IDs which when
empty signifies a null database value, compared to say an account note which when empty
could mean either an empty note OR null database value).
Obviously it is a little more complex than this in practice, but keep it in mind!