mirror of https://github.com/citusdata/citus.git
Before this commit, in certain cases router planner allowed pushing down JOINs that are not on the partition keys. With @anarazel's suggestion, we change the logic to use uninstantiated parameter. Previously, the planner was traversing on the restriction information and once it finds the parameter, it was replacing it with the shard range. With this commit, instead of traversing the restrict infos, the planner explicitly checks for the equivalence of the relation partition key with the uninstantiated parameter. If finds an equivalence, it adds the restrictions. In this way, we have more control over the queries that are pushed down. |
||
---|---|---|
.. | ||
deparse_shard_query.c | ||
multi_explain.c | ||
multi_join_order.c | ||
multi_logical_optimizer.c | ||
multi_logical_planner.c | ||
multi_master_planner.c | ||
multi_physical_planner.c | ||
multi_planner.c | ||
multi_router_planner.c |