[CP] fix calc nested loop join / spf cost bug
This commit is contained in:
		| @ -4068,13 +4068,10 @@ int ObJoinOrder::get_excluded_condition_exprs(ObIArray<ObRawExpr *> &excluded_co | ||||
| double ObJoinOrder::calc_single_parallel_rows(double rows, int64_t parallel) | ||||
| { | ||||
|   double ret = rows; | ||||
|   if (rows < parallel) { | ||||
|     parallel = rows; | ||||
|  | ||||
|   if (parallel >= 1) { | ||||
|     ret = rows / parallel; | ||||
|   } | ||||
|   //at least one parallel | ||||
|   parallel = parallel < 1 ? 1: parallel; | ||||
|   ret = rows / parallel; | ||||
|   ret = ret < 1 ? 1 : ret; | ||||
|   return ret; | ||||
| } | ||||
|  | ||||
| @ -6869,6 +6866,7 @@ int JoinPath::cost_nest_loop_join(int64_t join_parallel, | ||||
|     } else if (DistAlgo::DIST_BROADCAST_NONE == join_dist_algo_ || | ||||
|                DistAlgo::DIST_ALL_NONE == join_dist_algo_) { | ||||
|       right_rows /= in_parallel; | ||||
|       left_rows = ObJoinOrder::calc_single_parallel_rows(left_rows, 1); | ||||
|     } else if (DistAlgo::DIST_NONE_BROADCAST == join_dist_algo_ || | ||||
|                DistAlgo::DIST_NONE_ALL == join_dist_algo_) { | ||||
|       left_rows = ObJoinOrder::calc_single_parallel_rows(left_rows, in_parallel); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 zzg19950727
					zzg19950727