logoalt Hacker News

Sesse__yesterday at 9:24 PM0 repliesview on HN

It also probably is hard even to get the SQLite _executor_ to accept these plans, given that they are not trees. It feels a bit odd that none of the papers seem to really talk much about this; they have an algebraic tree structure and then end up with something that's distinctly a non-tree after a rewrite. I understand that for the typical column store execution model of doing an entire operator at a time, this isn't a problem -- but wouldn't it be for the rest of the optimization pipeline? Like, how do you build a join (hyper)graph from this? To what degree are other rewrites (like, well, pushdown) allowed? It's obviously been solved _somehow_, since already HyPer could do this and they claim to be able to run the plan in Postgres, but it's not immediately obvious to me. Do they insert a CTE and thus an optimization barrier?