3109
3110
!embedding->embedding)))
3111
3112
in_subq= sj_subselects.front();
3117
2. Pick which subqueries to convert:
3118
sort the subquery array
3119
- prefer correlated subqueries over uncorrelated;
3120
- prefer subqueries that have greater number of outer tables;
3122
sj_subselects.sort(subq_sj_candidate_cmp);
3123
// #tables-in-parent-query + #tables-in-subquery < MAX_TABLES
3124
/* Replace all subqueries to be flattened with Item_int(1) */
3125
for (in_subq= sj_subselects.front();
3126
in_subq != in_subq_end &&
3127
tables + ((*in_subq)->sj_convert_priority % MAX_TABLES) < MAX_TABLES;
3130
if (replace_where_subcondition(this, *in_subq, new Item_int(1), false))
3134
for (in_subq= sj_subselects.front();
3135
in_subq != in_subq_end &&
3136
tables + ((*in_subq)->sj_convert_priority % MAX_TABLES) < MAX_TABLES;
3139
if (convert_subq_to_sj(this, *in_subq))
3113
outer_join_disable_semi_join= true;
3117
if (! outer_join_disable_semi_join)
3120
2. Pick which subqueries to convert:
3121
sort the subquery array
3122
- prefer correlated subqueries over uncorrelated;
3123
- prefer subqueries that have greater number of outer tables;
3125
sj_subselects.sort(subq_sj_candidate_cmp);
3126
// #tables-in-parent-query + #tables-in-subquery < MAX_TABLES
3127
/* Replace all subqueries to be flattened with Item_int(1) */
3128
for (in_subq= sj_subselects.front();
3129
in_subq != in_subq_end &&
3130
tables + ((*in_subq)->sj_convert_priority % MAX_TABLES) < MAX_TABLES;
3133
if (replace_where_subcondition(this, *in_subq, new Item_int(1), false))
3137
for (in_subq= sj_subselects.front();
3138
in_subq != in_subq_end &&
3139
tables + ((*in_subq)->sj_convert_priority % MAX_TABLES) < MAX_TABLES;
3142
if (convert_subq_to_sj(this, *in_subq))
3143
3147
/* 3. Finalize those we didn't convert */