Query Engines: Push vs. Pull