Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor cdbpath_motion_for_parallel_join() by outer join inner style
We have separated join locus function for non-parallel and parallel mode into cdbpath_motion_for_join() which handles for locus whose parallel_workers is 0 and cdbpath_motion_for_parallel_join() which handles others. A lot of logic are meaningless in cdbpath_motion_for_parallel_join(): 1.Writeable operations for join. 2.Both sides's locus parallel_workers are no more than one. 3.Some locus couldn't participate parallel join yet now. We have done the job for SegmentGeneralWorkers as outer side join with other locus as inner side, but lack for other types. Refactoring that to keep codes clear. Some wrong logic are found and left CBDB_PARALLEL_FIXME to remind us to resolve them in upcoming fixes. Main changes: SingleQE join SegmentGeneralWorkers. SingleQE join Partitioned(workers>1), except HashedOJ. SegmentGeneral as outer, Assert(false). Partitioned(workers>1) join SegmentGeneral. Partitioned(workers>1) join SegmentGeneralWorkers. Partitioned(workers>1) join SingleQE. Partitioned join Partitioned are handled as cdbpath_motion_for_join(). Remove all if conditions for inner side locus. Authored-by: Zhang Mingli avamingli@gmail.com
- Loading branch information