← Back to team overview

maria-developers team mailing list archive

Re: MDEV-8615: Assertion `m_cpp_buf <= begin_ptr && begin_ptr <= m_cpp_buf + m_buf_length' failed in Lex_input_stream::body_utf8_start

 

Hi, Sanja!

On Dec 25, OleksandrByelkin wrote:
> revision-id: 684bd68c33284f6106551188d9567f35b18593ed (mariadb-10.1.9-21-g684bd68)
> parent(s): 59fcd7ff2315d007045eb987da5f21abbea6f6f1
> committer: Oleksandr Byelkin
> timestamp: 2015-12-25 18:39:43 +0100
> message:
> 
> MDEV-8615: Assertion `m_cpp_buf <= begin_ptr && begin_ptr <= m_cpp_buf + m_buf_length' failed in Lex_input_stream::body_utf8_start
> 
> Nothing should be done before any keyword recognised.
> 
> diff --git a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result
> index e258b1d..a9980a7 100644
> --- a/mysql-test/r/mysqltest.result
> +++ b/mysql-test/r/mysqltest.result
> @@ -29,40 +29,40 @@ select 0 as "after_successful_stmt_errno" ;
>  after_successful_stmt_errno
>  0
>  garbage ;
> -ERROR 42000: You have an error in your SQL syntax; <...> near 'garbage' at line 1
> +ERROR 42000: You have an error in your SQL syntax; <...> near '' at line 1

Why is that?
I mean, how does the parser parse "garbage" now?

> diff --git a/mysql-test/suite/funcs_1/r/storedproc.result b/mysql-test/suite/funcs_1/r/storedproc.result
> index f0e1ee7..485082a 100644
> --- a/mysql-test/suite/funcs_1/r/storedproc.result
> +++ b/mysql-test/suite/funcs_1/r/storedproc.result
> @@ -15982,8 +15982,7 @@ insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz'
>  until count1 < 3
>  END repeat label1;
>  END//
> -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'label1;
> -END' at line 8
> +ERROR 42000: End-label label1 without match

New error message is correct, great!

> diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
> index a5a62ae..74d308f 100644
> --- a/sql/sql_yacc.yy
> +++ b/sql/sql_yacc.yy
> @@ -248,6 +248,36 @@ static bool maybe_start_compound_statement(THD *thd)
>    return 0;

This looks quite good!
But it was a bit difficult to see how the new sql_yacc.yy will look
like. Did you push this patch? In what branch?

Regards,
Sergei
Chief Architect MariaDB
and security@xxxxxxxxxxx
-- 
Vote for my Percona Live 2016 talks:
https://www.percona.com/live/data-performance-conference-2016/sessions/mariadb-connectors-fast-and-smart-new-protocol-optimizations#community-voting
https://www.percona.com/live/data-performance-conference-2016/sessions/mariadb-101-security-validation-authentication-encryption#community-voting


Follow ups