Oddbean new post about | logout
 I need to find latest releases for apps given a set of app ids and this query is complex. Syncing hundreds of thousands of releases to a local relay is not viable.

We are going to end up with more custom query languages and ad-hoc external services just because we're stubborn to address the query language issue. I'm not saying massive processing like WoT - but stuff that is trivial for SQLite to handle 
 Sql works with indexes, without them it won't help. To add proper index you add single letter tag. If you want joins then all you are asking is for relay to bear the weight for you. Just denormalize your data, add a tag, and make life easy for both sides  
 Thanks. Data is denormalized already so no joins. That is not enough. Yes, I'm happy to ask the relay to bear the weight for me. 
 I need the latest of each. Limit obviously does not help as it applies to the whole result set. Not using any sort of limit is unviable as I would get too many events 
 Maybe each app can link to it's latest release? 
 Yes they are linked already.

My request is: Give me the latest release for each one of these app ids. In SQL that can be done with a self-join I think 
 So you load apps and then latest releases by id? 
 I need to check for updates: for (com.app1, com.app2, com.app3) give me the latest 1063 events for each.

I could use one query for each, but since a user might be checking for 50-100 apps I don't want to do that. 
 Is com1 linking to latest release? 
 Assume that appid is in a tag in the release itself.

But don't worry, I'll figure it out

Thank you! 🫂 
 So there's an index and no joins so what's complex there?