For such a logical plan read->map->limit, the optimizer will optimize it to read->limit->map.
This is under the assumption that map won't change the number of rows. However, currently this is true in practice.
We should enforce map ops to keep the exact number of rows. Otherwise, the limit pushdown rule will cause wrong results.