mirror of https://github.com/citusdata/citus.git
With this commit, we relax the restrictions put on the reference tables with subquery pushdown. We did three notable improvements: 1) Relax equi-join restrictions Previously, we always expected that the non-reference tables are equi joined with reference tables on the partition key of the non-reference table. With this commit, we allow any column of non-reference tables joined using non-equi joins as well. 2) Relax OUTER JOIN restrictions Previously Citus errored out if any reference table exists at any point of the outer part of an outer join. For instance, See the below sketch where (h) denotes a hash distributed relation, (r) denotes a reference table, (L) denotes LEFT JOIN and (I) denotes INNER JOIN. (L) / \ (I) h / \ r h Before this commit Citus would error out since a reference table appears on the left most part of an left join. However, that was too restrictive so that we only error out if the reference table is directly below and in the outer part of an outer join. 3) Bug fixes We've done some minor bugfixes in the existing implementation. |
||
---|---|---|
.. | ||
data | ||
expected | ||
input | ||
output | ||
specs | ||
sql | ||
.gitignore | ||
Makefile | ||
isolation_schedule | ||
multi_binary_schedule | ||
multi_follower_schedule | ||
multi_mx_schedule | ||
multi_schedule | ||
multi_task_tracker_extra_schedule | ||
pg_regress_multi.pl | ||
worker_schedule |