mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
b7b0bc8f11
We omit the work-around commit 0b7fa5a05d
because it appears to be needed for CentOS 6 only,
which we no longer support.
83 lines
2.3 KiB
Text
83 lines
2.3 KiB
Text
# Embedded server doesn't support external clients
|
|
--source include/not_embedded.inc
|
|
|
|
--echo #
|
|
--echo # MDEV-17429 mysqldump uses 10.3 options with pre-10.3 servers and breaks
|
|
--echo #
|
|
|
|
# Make sure the server reports itself as 10.2.1-MariaDB
|
|
SELECT @@version;
|
|
|
|
SET sql_mode=ORACLE;
|
|
CREATE DATABASE db1_mdev17429;
|
|
USE db1_mdev17429;
|
|
|
|
DELIMITER $$;
|
|
|
|
CREATE PROCEDURE p1(a INT)
|
|
AS BEGIN
|
|
NULL;
|
|
END;
|
|
$$
|
|
|
|
CREATE OR REPLACE PACKAGE employee_tools AS
|
|
FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2);
|
|
PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2));
|
|
PROCEDURE raiseSalaryStd(eid INT);
|
|
PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2));
|
|
END;
|
|
$$
|
|
CREATE PACKAGE BODY employee_tools AS
|
|
-- package body variables
|
|
stdRaiseAmount DECIMAL(10,2):=500;
|
|
|
|
-- private routines
|
|
PROCEDURE log (eid INT, ecmnt TEXT) AS
|
|
BEGIN
|
|
INSERT INTO employee_log (id, cmnt) VALUES (eid, ecmnt);
|
|
END;
|
|
|
|
-- public routines
|
|
PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2)) AS
|
|
eid INT;
|
|
BEGIN
|
|
INSERT INTO employee (name, salary) VALUES (ename, esalary);
|
|
eid:= last_insert_id();
|
|
log(eid, 'hire ' || ename);
|
|
END;
|
|
|
|
FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2) AS
|
|
nSalary DECIMAL(10,2);
|
|
BEGIN
|
|
SELECT salary INTO nSalary FROM employee WHERE id=eid;
|
|
log(eid, 'getSalary id=' || eid || ' salary=' || nSalary);
|
|
RETURN nSalary;
|
|
END;
|
|
|
|
PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2)) AS
|
|
BEGIN
|
|
UPDATE employee SET salary=salary+amount WHERE id=eid;
|
|
log(eid, 'raiseSalary id=' || eid || ' amount=' || amount);
|
|
END;
|
|
|
|
PROCEDURE raiseSalaryStd(eid INT) AS
|
|
BEGIN
|
|
raiseSalary(eid, stdRaiseAmount);
|
|
log(eid, 'raiseSalaryStd id=' || eid);
|
|
END;
|
|
|
|
BEGIN
|
|
-- This code is executed when the current session
|
|
-- accesses any of the package routines for the first time
|
|
log(0, 'Session ' || connection_id() || ' ' || current_user || ' started');
|
|
END;
|
|
$$
|
|
DELIMITER ;$$
|
|
|
|
# mysqldump output is expected to have standalone PROCEDURE/FUNCTION, but not PACKAGE/PACKAGE BODY.
|
|
|
|
--replace_regex /-- MariaDB dump.*[^\n]/-- MariaDB dump DUMPVERSION Distrib DISTVERSION, for OS/ / on [0-9 :-]+/ on TIMESTAMP/
|
|
--exec $MYSQL_DUMP --quick --routines --triggers --no-create-info --skip-lock-tables --no-data --compress -uroot db1_mdev17429
|
|
|
|
DROP DATABASE db1_mdev17429;
|
|
SET sql_mode=DEFAULT;
|