opt: modify limit pushdown rule to support inner joins
Previously, the optimizer could not push a limit into an InnerJoin. This patch replaces PushLimitIntoLeftJoin with two rules which perform the same function as well as handle the InnerJoin case. A limit can be pushed into a given side of an InnerJoin when rows from that side are guaranteed to be preserved by the join. Release note (sql change): improve performance for queries with a limit on a join that is guaranteed to preserve input rows.
Showing with 235 additions and 23 deletions