Bug #53853 Wrong delimiter when forward engineer create routine
Submitted: 20 May 2010 11:52 Modified: 26 May 2010 11:30
Reporter: Christian Steinmann Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench Severity:S3 (Non-critical)
Version:5.2.21 OSS RC OS:Windows
Assigned to: Alexander Musienko CPU Architecture:Any
Tags: DELIMITER, forward engineer

[20 May 2010 11:52] Christian Steinmann
Description:
Try to write a Function, then when forward engineer to database with option "DROP Object before create", the Delimiter set in the routine is also used for the DROP statement, but doesnt exist at this point of the execution. Without the option "DROP Object beforce create" everything works fine.

How to repeat:
DELIMITER $$

CREATE FUNCTION `test`.`PassDecrypt` (`pass` blob) RETURNS char(30) CHARSET utf8
RETURN AES_DECRYPT(`pass`,'!!passencryptionkey!!')
$$

//later when forward with drop following SQL will be executed//

USE `test`$$

DROP function IF EXISTS `test`.`PassEncrypt`$$

DELIMITER $$

USE `test`$$

CREATE FUNCTION `PassEncrypt` (`pass` CHAR(30)) RETURNS blob

RETURN AES_ENCRYPT(`pass`,'!!passencryptionkey!!')

$$

DELIMITER ;
[26 May 2010 11:03] Johannes Taxacher
fix confirmed in repository
[26 May 2010 11:30] Tony Bedford
An entry has been added to the 5.2.22 changelog:

When forward engineering a schema to a database with the DROP Objects Before Each CREATE Object option selected, the DROP statement used a delimiter before it had been declared.