This rule aims to merge consecutive limits. LogicalLimit(limit=10, offset=4) +---LogicalLimit(limit=3, offset=5) transformed to LogicalLimit(limit=3, offset=5) where newLimit.limit = min(topLimit.limit, bottomLimit.limit) newLimit.offset = bottomLimit.offset topLimit.offset is ignored