Filter direct element children, by using the top element paths.
Instead of hitting heavily ElementPath
to list direct children by using the path__last
operator that is expensive, i'm listing all the paths for the requested elements, and using them directly.
This is way faster (from 6x to 10x faster depending on cases), and really noticeable when browsing a project through the frontend.
This adds another request for ListElementChildren
, but it's fast because it relies uniquely on the ElementPath.element_id
index, and then can use directly the ElementPath.path
index with the IN
clause instead of doing math...