Description:
Routines are missing "DELIMITER ;" when using "Omit Schema Qualifier Object Names" in File / Export / Forward Engineer SQL CREATE Script
How to repeat:
Add a routine "routine1" with e.g. this DQL:
DELIMITER $$
CREATE PROCEDURE `routine1` ()
-- test
BEGIN
END
File / Export / Forward Engineer SQL CREATE Script and check
"Omit Schema Qualifier Object Names" results in this SQL:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- procedure routine1
-- -----------------------------------------------------
DELIMITER $$
CREATE PROCEDURE `routine1` ()
-- test
BEGIN
END$$
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
When "Omit Schema Qualifier Object Names" is NOT checked it will result in the correct SQL (with the DELIMITER ;) at the end:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `mydb` ;
USE `mydb` ;
-- -----------------------------------------------------
-- procedure routine1
-- -----------------------------------------------------
DELIMITER $$
USE `mydb`$$
CREATE PROCEDURE `routine1` ()
-- test
BEGIN
END$$
DELIMITER ;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;