• timour@mysql.com's avatar
    Fix for BUG#12943. · 7d24bdac
    timour@mysql.com authored
    The problem was that in the first production in rule 'join_table', that
    processes simple cross joins, the parser was processing the second join operand
    before the first one due to unspecified priorities of JOINs. As a result in the
    case of cross joins the parser constructed a tree with incorrect nesting:
    the expression "t1 join t2 join t3 on some_cond" was interpreted as
    "t1 join (t2 join t3 on some_cond)" instead of
    "(t1 join t2) join t3 on some_cond".
    Because of this incorrect nesting the method make_join_on_context picked an
    incorrect table as the first table of the name resolution context.
    
    The solution assignes correct priorities to the related production.
    7d24bdac
sql_yacc.yy 229 KB