• Marc Olivier Bergeron's avatar
    MDEV-27066: Fixed scientific notation parsing bug · 749d8ded
    Marc Olivier Bergeron authored
    The bug occurs where the float token containing a dot with an 'e'
    notation was dropped from the request completely.
    
    This causes a manner of invalid SQL statements like:
    
    select id 1.e, char 10.e(id 2.e), concat 3.e('a'12356.e,'b'1.e,'c'1.1234e)1.e, 12 1.e*2 1.e, 12 1.e/2 1.e, 12 1.e|2 1.e, 12 1.e^2 1.e, 12 1.e%2 1.e, 12 1.e&2 from test;
    
    To be parsed correctly as if it was:
    
    select id, char(id), concat('a','b','c'), 12*2, 12/2, 12|2, 12^2, 12%2, 12&2 from test.test;
    
    This correct parsing occurs when e is followed by any of:
    
    ( ) . , | & % * ^ /
    749d8ded
parser.test 39.7 KB