In my hypertree decomposition branch, I had an optimization that avoids and inlines some materialization. (A materialization is currently just a RowBuffer). This optimization is supposed to make things faster, but it actually makes one bottleneck rule slower by 30%. This is because in the current implementation, iterating a materialization is much faster than iterating a database, so storing a table into a row buffer and iterating this buffer (repeatedly) is actually more efficient than iterating the table itself😅 .
In my hypertree decomposition branch, I had an optimization that avoids and inlines some materialization. (A materialization is currently just a RowBuffer). This optimization is supposed to make things faster, but it actually makes one bottleneck rule slower by 30%. This is because in the current implementation, iterating a materialization is much faster than iterating a database, so storing a table into a row buffer and iterating this buffer (repeatedly) is actually more efficient than iterating the table itself😅 .