• Marc Alff's avatar
    Bug#26030 (Parsing fails for stored routine w/multi-statement execution · c7724872
    Marc Alff authored
    enabled)
    
    Before this fix, the lexer and parser would treat the ';' character as a
    different token (either ';' or END_OF_INPUT), based on convoluted logic,
    which failed in simple cases where a stored procedure is implemented as a
    single statement, and used in a multi query.
    
    With this fix:
    - the character ';' is always parsed as a ';' token in the lexer,
    - parsing multi queries is implemented in the parser, in the 'query:' rules,
    - the value of thd->client_capabilities, which is the capabilities
      negotiated between the client and the server during bootstrap,
      is immutable and not arbitrarily modified during parsing (which was the
      root cause of the bug)
    
    c7724872
sql_parse.cc 234 KB