I know [RethinkDB][1] used to do this with their SQL-like ReQL language, but I looked around a bit and can't find much else about it - and I would have thought it would be more common.
I'm more interesting in queries with joins and doing it efficiently, instead of just tracking updates to tables that are modified, and re-rerunning the entire query. If we think about modern frontends using SQL-based backends, essentially every time we render, its ultimately the result of a tree of SQL queries (queries depend on results of other queries) running in the backend. Our frontend app state is just a tree of materialized views of our database which depend on each other. We've got a bunch of state management libraries that deal with trees but they don't fit so well with relational/graph-like data. I came across a Postgres proposal for [Incremental View Maintenance][2] which generates a diff against an existing query with the purpose of updating a materialized view. Oracle also has [`FAST REFRESH`][3] for materialized views. I guess it's relatively easy to do until you start needing joins or traversing graphs/hierarchies - which is why its maybe avoided. EDIT: [Materialize][1] looks interesting in this space: "Execute streaming SQL Joins" but more focused on the event streams rather than general-purpose DML/OLTP. [1]: https://ift.tt/32z6nkG [2]: https://ift.tt/305Xtvu [3]: https://ift.tt/3dFUX51 [4]: https://ift.tt/3g2klkX |
from Hacker News https://ift.tt/3xa31mh
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.