Affects versions: 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.6.0, 3.6.1, 3.6.2, 3.6.3
Fix versions: None
Components: Database Support
All, especially Windows
The following commit fixed a bug introduced in 3.5.0 for MySQL, but it introduced a bug for others:
Corresponding Jira issue:
The ANSI SQL grammar does not allow single quotes to be escaped with a backslash in a string literal. I haven't obtained an actual copy of the standard myself, but that claim is also made in the SQLite Documentation ("C-style escapes using the backslash character are not supported because they are not standard SQL"): https://www.sqlite.org/lang_expr.html
Some RDBMS vendors have a modified grammar that allows backslash escape sequences, such as MySQL, but most don't in compliance with the standard, including at least SQLite, Oracle, and SQL Server.
This will cause problems for string literals ending in a backslash, which are not uncommon in Windows environments. The most significant problem is statements being split incorrectly. I encountered this bug with the string literal '\' occurring in a group of stored procedures for SQL Server.