Bug #59882 Not correct change trigger script
Submitted: 2 Feb 2011 7:28 Modified: 16 Nov 2011 16:54
Reporter: Pavel Dobryakov Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench: SQL Editor Severity:S3 (Non-critical)
Version:5.2.31 OS:Any
Assigned to: CPU Architecture:Any

[2 Feb 2011 7:28] Pavel Dobryakov
Description:
Hello , i have trigger such a template:
-- Trigger DDL Statements
DELIMITER $$

USE `xxx-ru-yyy`$$

CREATE
DEFINER=`xxx`@`10.25.%`
TRIGGER `xxx-ru-yyy`.`manage_so_after_ins_tr`
AFTER INSERT ON `xxx-ru-yyy`.`xxx_yyy_zzz_qq`
FOR EACH ROW
BEGIN

.......
END$$

When i try to change somthing, i get script.

USE xxx-ru-yyy;  --- Here must be USE `xxx-ru-yyy`;

DELIMITER $$

DROP TRIGGER IF EXISTS xxx-ru-yyy.manage_so_after_ins_tr$$   ---- here must be DROP TRIGGER IF EXISTS `xxx-ru-yyy`.`manage_so_after_ins_tr`$$
USE `xxx-ru-yyy`$$

CREATE
DEFINER=`xxx`@`10.25.%`
TRIGGER `xxx-ru-yyy`.`manage_so_after_ins_tr`
AFTER INSERT ON `xxx-ru-yyy`.`xxx_yyy_zzz_qq`
FOR EACH ROW
BEGIN

......
END$$
DELIMITER ;

How to repeat:
Try to change trigger with the above pattern
[2 Feb 2011 7:40] Valeriy Kravchuk
Verified on Windows XP. Schema name is not quoted properly and code like the following:

USE new-schema;

DELIMITER $$

DROP TRIGGER IF EXISTS new-schema.tr1$$
USE `new-schema`$$

CREATE
DEFINER=`root`@`localhost`
TRIGGER `new-schema`.`tr1`
BEFORE INSERT ON `new-schema`.`t1`
FOR EACH ROW
begin
  set new.c1 = 'c';
end$$
DELIMITER ;

is generated.
[16 Nov 2011 16:54] Philip Olson
Fixed as of 5.2.36:

+        The <literal>USE</literal> statement is now properly quoted. For
+        example, an invalid <literal>USE</literal> query would be
+        generated if a schema contained a <literal>-</literal>
+        character.