On Tue, Oct 25, 2011 at 11:59:37AM +0300, sanja@xxxxxxxxxxxx wrote:
At file:///home/bell/maria/bzr/work-maria-5.3-lpb872775/
------------------------------------------------------------
revno: 3249
revision-id: sanja@xxxxxxxxxxxx-20111025085936-h0jyyxtbv3qhp4f4
parent: igor@xxxxxxxxxxxx-20111023124603-sjv665ajk25b4dgi
committer: sanja@xxxxxxxxxxxx
branch nick: work-maria-5.3-lpb872775
timestamp: Tue 2011-10-25 11:59:36 +0300
message:
Fix of LP BUG#872775.
The problem was that merged views has its own nest_level numbering =>
when we compare nest levels we should take into considiration basis (i.e. 0 level),
if it is different then nest levels are not comparable.
:grep nest_level_base *.h *.c*
item.h|1165| st_select_lex_unit *nest_level_base;
sql_lex.h|687| SELECT_LEX_UNIT *nest_level_base; /* unit from which we count
nest_level */
item.cc|759| depended_from->nest_level_base == prm->nest_level_base&&
item_subselect.cc|603| unit->first_select()->nest_level_base,
item_sum.cc|363| ds->nest_level_base == prm->nest_level_base&&
sql_lex.cc|342| lex->select_lex.nest_level_base=&lex->unit;
sql_parse.cc|5920| select_lex->nest_level_base=&thd->lex->unit;
The only places where nest_level_base is assigned are:
sql_lex.cc|342| lex->select_lex.nest_level_base=&lex->unit;
sql_parse.cc|5920| select_lex->nest_level_base=&thd->lex->unit;
both of these initialize it to the top-level unit. So what is the point of
having nest_level_base in this case? Please clarify :)