summaryrefslogtreecommitdiff
path: root/sql/sql_derived.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_derived.cc')
-rw-r--r--sql/sql_derived.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc
index 898b6336ae5..c27649ca5e8 100644
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@ -1129,23 +1129,24 @@ bool mysql_derived_reinit(THD *thd, LEX *lex, TABLE_LIST *derived)
bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived)
{
+ DBUG_ENTER("pushdown_cond_for_derived");
if (!cond)
- return false;
+ DBUG_RETURN(false);
st_select_lex_unit *unit= derived->get_unit();
st_select_lex *sl= unit->first_select();
/* Do not push conditions into constant derived */
if (unit->executed)
- return false;
+ DBUG_RETURN(false);
/* Do not push conditions into recursive with tables */
if (derived->is_recursive_with_table())
- return false;
+ DBUG_RETURN(false);
/* Do not push conditions into unit with global ORDER BY ... LIMIT */
if (unit->fake_select_lex && unit->fake_select_lex->explicit_limit)
- return false;
+ DBUG_RETURN(false);
/* Check whether any select of 'unit' allows condition pushdown */
bool some_select_allows_cond_pushdown= false;
@@ -1158,7 +1159,7 @@ bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived)
}
}
if (!some_select_allows_cond_pushdown)
- return false;
+ DBUG_RETURN(false);
/*
Build the most restrictive condition extractable from 'cond'
@@ -1173,7 +1174,7 @@ bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived)
if (!extracted_cond)
{
/* Nothing can be pushed into the derived table */
- return false;
+ DBUG_RETURN(false);
}
/* Push extracted_cond into every select of the unit specifying 'derived' */
st_select_lex *save_curr_select= thd->lex->current_select;
@@ -1257,6 +1258,6 @@ bool pushdown_cond_for_derived(THD *thd, Item *cond, TABLE_LIST *derived)
sl->cond_pushed_into_having= extracted_cond_copy;
}
thd->lex->current_select= save_curr_select;
- return false;
+ DBUG_RETURN(false);
}