summaryrefslogtreecommitdiff
path: root/sql/sql_lex.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r--sql/sql_lex.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index f351210a862..2176f28514c 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -10490,11 +10490,13 @@ void LEX::relink_hack(st_select_lex *select_lex)
{
if (!select_stack_top) // Statements of the second type
{
- if (!select_lex->get_master()->get_master())
- ((st_select_lex *) select_lex->get_master())->
- set_master(&builtin_select);
- if (!builtin_select.get_slave())
- builtin_select.set_slave(select_lex->get_master());
+ if (!select_lex->outer_select() &&
+ !builtin_select.first_inner_unit())
+ {
+ builtin_select.register_unit(select_lex->master_unit(),
+ &builtin_select.context);
+ builtin_select.add_statistics(select_lex->master_unit());
+ }
}
}