← Back to team overview

maria-developers team mailing list archive

Re: 9b999e79a35: MDEV-23108: Point in time recovery of binary log fails when sql_mode=ORACLE

 

Hi, sujatha!

On Jul 17, sujatha wrote:
> revision-id: 9b999e79a358de2c86ae44fe83cf6c62cff1d2ef (mariadb-10.3.21-180-g9b999e79a35)
> parent(s): 73aa31fbfd793bdb597bb19c52118ab4e637f4bc
> author: Sujatha
> committer: Sujatha
> timestamp: 2020-07-17 12:23:32 +0530
> message:
> 
> MDEV-23108: Point in time recovery of binary log fails when sql_mode=ORACLE
> 
> Problem:
> ========
> During point in time recovery of binary log syntax error is reported for
> BEGIN statement and recovery fails.
> 
> Analysis:
> =========
> In MariaDB 10.3 and later, setting the sql_mode system variable to Oracle
> allows the server to understand a subset of Oracle's PL/SQL language. When
> sql_mode=ORACLE is set, it switches the parser from the MariaDB parser to
> Oracle compatible parser. With this change 'BEGIN' is not considered as
> 'START TRANSACTION'. Hence the syntax error is reported.
> 
> Fix:
> ===
> Add a new option to 'mysqlbinlog' tool named 'sql_mode_oracle'. When
> 'sql_mode_oracle' option is specified 'BEGIN' statements will be replaced
> with 'START TRANSACTION' in the mysqlbinlog output.

Why not to print START TRANSACTION unconditionally? It worsk in all
modes, a user won't need to learn a new option.

Regards,
Sergei
VP of MariaDB Server Engineering
and security@xxxxxxxxxxx


Follow ups

References