mirror of
https://github.com/MariaDB/server.git
synced 2025-11-08 00:28:29 +03:00
143 lines
3.6 KiB
Plaintext
143 lines
3.6 KiB
Plaintext
--echo # Start of 11.8 tests
|
|
|
|
--echo #
|
|
--echo # MDEV-10862 Stored procedures: default values for parameters (optional parameters)
|
|
--echo #
|
|
|
|
--echo #
|
|
--echo # Basic default parameter test for procedures
|
|
--echo #
|
|
|
|
DELIMITER $$;
|
|
CREATE OR REPLACE PROCEDURE p1(par1 INT, par2 INT DEFAULT 1)
|
|
BEGIN
|
|
SELECT par1, par2 FROM DUAL;
|
|
END;
|
|
$$
|
|
DELIMITER ;$$
|
|
CALL p1(2,3);
|
|
CALL p1(2);
|
|
--error ER_SP_WRONG_NO_OF_ARGS
|
|
CALL p1(2,3,4);
|
|
--error ER_SP_WRONG_NO_OF_ARGS
|
|
CALL p1();
|
|
|
|
DROP PROCEDURE p1;
|
|
|
|
--echo #
|
|
--echo # Basic default parameter test for functions
|
|
--echo #
|
|
DELIMITER $$;
|
|
CREATE OR REPLACE FUNCTION f1(par1 INT, par2 INT DEFAULT 1) RETURNS INT
|
|
RETURN par1 + par2;
|
|
$$
|
|
DELIMITER ;$$
|
|
SELECT f1(2,3) FROM DUAL;
|
|
SELECT f1(2) FROM DUAL;
|
|
--error ER_SP_WRONG_NO_OF_ARGS
|
|
SELECT f1(2,3,4) FROM DUAL;
|
|
--error ER_SP_WRONG_NO_OF_ARGS
|
|
SELECT f1() FROM DUAL;
|
|
|
|
DROP FUNCTION f1;
|
|
|
|
--echo #
|
|
--echo # Test various data types
|
|
--echo #
|
|
CREATE TABLE t1 (a INT, b VARCHAR(10));
|
|
|
|
CREATE DATABASE d1;
|
|
USE d1;
|
|
CREATE TABLE t1 (a INT, b VARCHAR(10));
|
|
|
|
USE test;
|
|
DELIMITER $$;
|
|
CREATE OR REPLACE PROCEDURE p1(par1 INT DEFAULT 1,
|
|
par2 VARCHAR(10) DEFAULT 'abc',
|
|
par3 DATE DEFAULT '2010-01-01',
|
|
par4 DECIMAL(10,2) DEFAULT 1.23,
|
|
par5 DOUBLE DEFAULT 1.23,
|
|
par6 FLOAT DEFAULT 1.23,
|
|
par7 CHAR DEFAULT 'a',
|
|
par8 BINARY DEFAULT 'a',
|
|
par9 BLOB DEFAULT 'a',
|
|
par10 TEXT DEFAULT 'a',
|
|
par11 ENUM('a','b') DEFAULT 'a',
|
|
par12 SET('a','b') DEFAULT 'a',
|
|
par13 TIMESTAMP DEFAULT '2010-01-01 00:00:00',
|
|
par14 DATETIME DEFAULT '2010-01-01 00:00:00',
|
|
par15 TIME DEFAULT '00:00:00',
|
|
par16 YEAR DEFAULT 2010,
|
|
par17 BOOLEAN DEFAULT TRUE,
|
|
par18 TYPE OF t1.a DEFAULT 10,
|
|
par19 TYPE OF d1.t1.a DEFAULT 10,
|
|
par20 ROW TYPE OF t1 DEFAULT ROW(1, 'cde'),
|
|
par21 ROW TYPE OF d1.t1 DEFAULT ROW(1, 'cde'))
|
|
BEGIN
|
|
SELECT par1, par2, par3, par4, par5, par6, par7, par8, par9,
|
|
par10, par11, par12, par13, par14, par15, par16, par17, par18,
|
|
par19, par20.b, par21.b
|
|
FROM DUAL;
|
|
END;
|
|
$$
|
|
DELIMITER ;$$
|
|
|
|
CALL p1();
|
|
|
|
DROP PROCEDURE p1;
|
|
DROP TABLE t1;
|
|
DROP DATABASE d1;
|
|
|
|
--echo #
|
|
--echo # Default parameters in package's routines
|
|
--echo #
|
|
DELIMITER $$;
|
|
CREATE OR REPLACE PACKAGE p1
|
|
PROCEDURE p1(par1 INT,
|
|
par2 INT DEFAULT 2);
|
|
FUNCTION f1(par1 INT,
|
|
par2 INT DEFAULT 2) RETURNS INT;
|
|
END;
|
|
$$
|
|
CREATE OR REPLACE PACKAGE BODY p1
|
|
PROCEDURE p1(par1 INT,
|
|
par2 INT DEFAULT 2)
|
|
BEGIN
|
|
SELECT par1, par2 FROM DUAL;
|
|
END;
|
|
FUNCTION f1(par1 INT,
|
|
par2 INT DEFAULT 2) RETURNS INT
|
|
BEGIN
|
|
RETURN par1 + par2;
|
|
END;
|
|
END;
|
|
$$
|
|
DELIMITER ;$$
|
|
|
|
CALL p1.p1(1,4);
|
|
CALL p1.p1(1);
|
|
SELECT p1.f1(1,4) FROM DUAL;
|
|
SELECT p1.f1(1) FROM DUAL;
|
|
|
|
DROP PACKAGE p1;
|
|
|
|
--echo #
|
|
--echo # MDEV-35925 OUT and INOUT parameters shouldn't expect a default value
|
|
--echo #
|
|
|
|
# An IN param with default followed by an OUT param
|
|
DELIMITER $$;
|
|
--error ER_NOT_SUPPORTED_YET
|
|
CREATE PROCEDURE sp1(IN p1 INT DEFAULT 0, OUT p2 INT)
|
|
BEGIN
|
|
SET p2 = p2 + 1;
|
|
END;
|
|
--error ER_NOT_SUPPORTED_YET
|
|
CREATE PROCEDURE sp1(IN p1 INT DEFAULT 0, IN OUT p2 INT)
|
|
BEGIN
|
|
SET p2 = p2 + 1;
|
|
END;
|
|
DELIMITER ;$$
|
|
|
|
--echo # End of 11.8 tests
|