mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix for BUG#20550: Stored function: wrong RETURN type metadata
when used in a VIEW. The problem was that wrong function (create_tmp_from_item()) was used to create a temporary field for Item_func_sp. The fix is to use create_tmp_from_field().
This commit is contained in:
@ -4914,7 +4914,7 @@ create table t3 as select * from v1|
|
||||
show create table t3|
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`j` bigint(11) DEFAULT NULL
|
||||
`j` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select * from t3|
|
||||
j
|
||||
@ -6599,3 +6599,51 @@ DROP TABLE t1;
|
||||
DROP PROCEDURE p1;
|
||||
DROP PROCEDURE p2;
|
||||
End of 5.0 tests
|
||||
|
||||
#
|
||||
# Bug#20550.
|
||||
#
|
||||
|
||||
#
|
||||
# - Prepare.
|
||||
#
|
||||
|
||||
DROP VIEW IF EXISTS v1;
|
||||
DROP VIEW IF EXISTS v2;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
DROP FUNCTION IF EXISTS f2;
|
||||
|
||||
#
|
||||
# - Create required objects.
|
||||
#
|
||||
|
||||
CREATE FUNCTION f1() RETURNS VARCHAR(65525) RETURN 'Hello';
|
||||
|
||||
CREATE FUNCTION f2() RETURNS TINYINT RETURN 1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT f1();
|
||||
|
||||
CREATE VIEW v2 AS SELECT f2();
|
||||
|
||||
#
|
||||
# - Check.
|
||||
#
|
||||
|
||||
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'v1';
|
||||
DATA_TYPE
|
||||
varchar
|
||||
|
||||
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'v2';
|
||||
DATA_TYPE
|
||||
tinyint
|
||||
|
||||
#
|
||||
# - Cleanup.
|
||||
#
|
||||
|
||||
DROP FUNCTION f1;
|
||||
DROP FUNCTION f2;
|
||||
DROP VIEW v1;
|
||||
DROP VIEW v2;
|
||||
|
||||
End of 5.1 tests
|
||||
|
@ -7549,3 +7549,87 @@ DROP PROCEDURE p1;
|
||||
DROP PROCEDURE p2;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
###########################################################################
|
||||
|
||||
#
|
||||
# Bug#20550: Stored function: wrong RETURN type metadata when used in a VIEW.
|
||||
#
|
||||
|
||||
###########################################################################
|
||||
|
||||
--echo
|
||||
|
||||
--echo #
|
||||
--echo # Bug#20550.
|
||||
--echo #
|
||||
|
||||
--echo
|
||||
|
||||
--echo #
|
||||
--echo # - Prepare.
|
||||
--echo #
|
||||
|
||||
--echo
|
||||
|
||||
--disable_warnings
|
||||
DROP VIEW IF EXISTS v1;
|
||||
DROP VIEW IF EXISTS v2;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
DROP FUNCTION IF EXISTS f2;
|
||||
--enable_warnings
|
||||
|
||||
--echo
|
||||
|
||||
--echo #
|
||||
--echo # - Create required objects.
|
||||
--echo #
|
||||
|
||||
--echo
|
||||
|
||||
CREATE FUNCTION f1() RETURNS VARCHAR(65525) RETURN 'Hello';
|
||||
|
||||
--echo
|
||||
|
||||
CREATE FUNCTION f2() RETURNS TINYINT RETURN 1;
|
||||
|
||||
--echo
|
||||
|
||||
CREATE VIEW v1 AS SELECT f1();
|
||||
|
||||
--echo
|
||||
|
||||
CREATE VIEW v2 AS SELECT f2();
|
||||
|
||||
--echo
|
||||
|
||||
--echo #
|
||||
--echo # - Check.
|
||||
--echo #
|
||||
|
||||
--echo
|
||||
|
||||
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'v1';
|
||||
|
||||
--echo
|
||||
|
||||
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'v2';
|
||||
|
||||
--echo
|
||||
|
||||
--echo #
|
||||
--echo # - Cleanup.
|
||||
--echo #
|
||||
|
||||
--echo
|
||||
|
||||
DROP FUNCTION f1;
|
||||
DROP FUNCTION f2;
|
||||
DROP VIEW v1;
|
||||
DROP VIEW v2;
|
||||
|
||||
--echo
|
||||
|
||||
###########################################################################
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
Reference in New Issue
Block a user