1# 2# MDEV-17429 mysqldump uses 10.3 options with pre-10.3 servers and breaks 3# 4SELECT @@version; 5@@version 610.2.1-MariaDB 7SET sql_mode=ORACLE; 8CREATE DATABASE db1_mdev17429; 9USE db1_mdev17429; 10CREATE PROCEDURE p1(a INT) 11AS BEGIN 12NULL; 13END; 14$$ 15CREATE OR REPLACE PACKAGE employee_tools AS 16FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2); 17PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2)); 18PROCEDURE raiseSalaryStd(eid INT); 19PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2)); 20END; 21$$ 22CREATE PACKAGE BODY employee_tools AS 23-- package body variables 24stdRaiseAmount DECIMAL(10,2):=500; 25-- private routines 26PROCEDURE log (eid INT, ecmnt TEXT) AS 27BEGIN 28INSERT INTO employee_log (id, cmnt) VALUES (eid, ecmnt); 29END; 30-- public routines 31PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2)) AS 32eid INT; 33BEGIN 34INSERT INTO employee (name, salary) VALUES (ename, esalary); 35eid:= last_insert_id(); 36log(eid, 'hire ' || ename); 37END; 38FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2) AS 39nSalary DECIMAL(10,2); 40BEGIN 41SELECT salary INTO nSalary FROM employee WHERE id=eid; 42log(eid, 'getSalary id=' || eid || ' salary=' || nSalary); 43RETURN nSalary; 44END; 45PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2)) AS 46BEGIN 47UPDATE employee SET salary=salary+amount WHERE id=eid; 48log(eid, 'raiseSalary id=' || eid || ' amount=' || amount); 49END; 50PROCEDURE raiseSalaryStd(eid INT) AS 51BEGIN 52raiseSalary(eid, stdRaiseAmount); 53log(eid, 'raiseSalaryStd id=' || eid); 54END; 55BEGIN 56-- This code is executed when the current session 57-- accesses any of the package routines for the first time 58log(0, 'Session ' || connection_id() || ' ' || current_user || ' started'); 59END; 60$$ 61-- MariaDB dump DUMPVERSION Distrib DISTVERSION, for OS 62-- 63-- Host: localhost Database: db1_mdev17429 64-- ------------------------------------------------------ 65-- Server version 10.2.1-MariaDB 66 67/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 68/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 69/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 70/*!40101 SET NAMES utf8mb4 */; 71/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; 72/*!40103 SET TIME_ZONE='+00:00' */; 73/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 74/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 75/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; 76 77-- 78-- Dumping routines for database 'db1_mdev17429' 79-- 80/*!50003 DROP PROCEDURE IF EXISTS `p1` */; 81/*!50003 SET @saved_cs_client = @@character_set_client */ ; 82/*!50003 SET @saved_cs_results = @@character_set_results */ ; 83/*!50003 SET @saved_col_connection = @@collation_connection */ ; 84/*!50003 SET character_set_client = latin1 */ ; 85/*!50003 SET character_set_results = latin1 */ ; 86/*!50003 SET collation_connection = latin1_swedish_ci */ ; 87/*!50003 SET @saved_sql_mode = @@sql_mode */ ; 88/*!50003 SET sql_mode = 'PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,SIMULTANEOUS_ASSIGNMENT' */ ; 89DELIMITER ;; 90CREATE DEFINER="root"@"localhost" PROCEDURE "p1"(a INT) 91AS BEGIN 92NULL; 93END ;; 94DELIMITER ; 95/*!50003 SET sql_mode = @saved_sql_mode */ ; 96/*!50003 SET character_set_client = @saved_cs_client */ ; 97/*!50003 SET character_set_results = @saved_cs_results */ ; 98/*!50003 SET collation_connection = @saved_col_connection */ ; 99/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; 100 101/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; 102/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; 103/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 104/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 105/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 106/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; 107 108-- Dump completed on TIMESTAMP 109DROP DATABASE db1_mdev17429; 110SET sql_mode=DEFAULT; 111