Thanks for the reference. Naiad: A Timely Dataflow System is an interesting paper!
I will take a closer read. It seems similar to what I described here https://news.ycombinator.com/item?id=31676849.
I can imagine an automated solution to achieve what you described eg by keeping track of the table:columns touched by the query. Maybe that’s what these system did.
It has its downside though, as the invalidation cost in this case can be unbounded (read as huge write amplification in some cases). I imagine it would be hard to provision the invalidation pipeline. This is where it gets into trade offs. Eg by just caching the primary index and secondary indices (not materializations) you can very far as well (do joins on read). But it depends on the workload.