Description:
0.
Because of the needs of a certain business at work, I referred to your code.
1.
There is such a table in the database。
CREATE TABLE `test` (
`id` INT ( 11 ) NOT NULL,
`x``x``x` VARCHAR ( 255 ),
PRIMARY KEY ( `id` ) USING BTREE
);
2.
I want to add data by clicking the `insert new row` button, and the tool generates such a statement for me。
INSERT INTO `look`.`test` (`id`, `x`x`x`) VALUES ('2', '3');
3.
I then clicked the `apply` button, and the tool reported an error.
Operation failed: There was an error while applying the SQL script to the database.
Executing:
INSERT INTO `look`.`test` (`id`, `x`x`x`) VALUES ('2', '3');
ERROR 1064: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'x`x`) VALUES ('2', '3')' at line 1
SQL Statement:
INSERT INTO `look`.`test` (`id`, `x`x`x`) VALUES ('2', '3')
How to repeat:
Create the table in the description, try to add data to it, it is easy to find the error.
Suggested fix:
In the following file, there is such a piece of code:
mysql-workbench/library/parsers/grammars/MySQLLexer.g4
fragment BACK_TICK: '`';
fragment SINGLE_QUOTE: '\'';
fragment DOUBLE_QUOTE: '"';
BACK_TICK_QUOTED_ID: BACK_TICK (({!isSqlModeActive(NoBackslashEscapes)}? '\\')? .)*? BACK_TICK;
The key to the problem is that this code does not adapt to ``