Skip to content

Commit 3808745

Browse files
committed
MDEV-29062 Wrong result set metadata for a mix of INT+ENUM
1 parent a5f7850 commit 3808745

File tree

12 files changed

+171
-53
lines changed

12 files changed

+171
-53
lines changed

mysql-test/main/func_hybrid_type.result

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1609,14 +1609,14 @@ def ifnull___a_a 253 10 1 Y 0 39 8
16091609
def least____a_a 253 10 1 Y 0 39 8
16101610
def greatest_a_a 253 10 1 Y 0 39 8
16111611
def test t1 t1 b ___________b 254 1 1 Y 256 0 8
1612-
def case_______b2541 1 Y 0 39 8
1613-
def case_____b_b2541 1 Y 0 39 8
1614-
def coalesce___b2541 1 Y 0 39 8
1615-
def coalesce_b_b2541 1 Y 0 39 8
1616-
def if_______b_b2541 1 Y 0 39 8
1617-
def ifnull___b_b2541 1 Y 0 39 8
1618-
def least____b_b2541 1 Y 0 39 8
1619-
def greatest_b_b2541 1 Y 0 39 8
1612+
def case_______b2531 1 Y 0 39 8
1613+
def case_____b_b2531 1 Y 0 39 8
1614+
def coalesce___b2531 1 Y 0 39 8
1615+
def coalesce_b_b2531 1 Y 0 39 8
1616+
def if_______b_b2531 1 Y 0 39 8
1617+
def ifnull___b_b2531 1 Y 0 39 8
1618+
def least____b_b2531 1 Y 0 39 8
1619+
def greatest_b_b2531 1 Y 0 39 8
16201620
___________a a
16211621
case_______a a
16221622
case_____a_a a

mysql-test/main/sp-anchor-row-type-table.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,7 @@ Table Create Table
707707
t2 CREATE TABLE `t2` (
708708
`a` int(11) DEFAULT NULL,
709709
`b` text DEFAULT NULL,
710-
`c` char(1) DEFAULT NULL
710+
`c` varchar(1) DEFAULT NULL
711711
) ENGINE=MyISAM DEFAULT CHARSET=latin1
712712
DROP PROCEDURE p2;
713713
DROP PROCEDURE p1;

mysql-test/main/sp-anchor-type.result

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -469,8 +469,8 @@ t2 CREATE TABLE `t2` (
469469
`t2` text DEFAULT NULL,
470470
`t3` mediumtext DEFAULT NULL,
471471
`t4` longtext DEFAULT NULL,
472-
`enum1` char(1) DEFAULT NULL,
473-
`set1` char(5) DEFAULT NULL,
472+
`enum1` varchar(1) DEFAULT NULL,
473+
`set1` varchar(5) DEFAULT NULL,
474474
`blob1` tinyblob DEFAULT NULL,
475475
`blob2` blob DEFAULT NULL,
476476
`blob3` mediumblob DEFAULT NULL,
@@ -631,8 +631,8 @@ t2 CREATE TABLE `t2` (
631631
`t2` text DEFAULT NULL,
632632
`t3` mediumtext DEFAULT NULL,
633633
`t4` longtext DEFAULT NULL,
634-
`enum1` char(1) DEFAULT NULL,
635-
`set1` char(5) DEFAULT NULL,
634+
`enum1` varchar(1) DEFAULT NULL,
635+
`set1` varchar(5) DEFAULT NULL,
636636
`blob1` tinyblob DEFAULT NULL,
637637
`blob2` blob DEFAULT NULL,
638638
`blob3` mediumblob DEFAULT NULL,
@@ -1044,7 +1044,7 @@ t1 CREATE TABLE `t1` (
10441044
`a_flt0` float DEFAULT NULL,
10451045
`a_dbl0` double DEFAULT NULL,
10461046
`a_bit3` bit(3) DEFAULT NULL,
1047-
`a_enum0` char(1) DEFAULT NULL,
1047+
`a_enum0` varchar(1) DEFAULT NULL,
10481048
`a_varchar10` varchar(10) DEFAULT NULL,
10491049
`a_text1` text DEFAULT NULL,
10501050
`a_tinytext1` tinytext DEFAULT NULL,
@@ -1062,7 +1062,7 @@ t1 CREATE TABLE `t1` (
10621062
`aa_flt0` float DEFAULT NULL,
10631063
`aa_dbl0` double DEFAULT NULL,
10641064
`aa_bit3` bit(3) DEFAULT NULL,
1065-
`aa_enum0` char(1) DEFAULT NULL,
1065+
`aa_enum0` varchar(1) DEFAULT NULL,
10661066
`aa_varchar10` varchar(10) DEFAULT NULL,
10671067
`aa_text1` text DEFAULT NULL,
10681068
`aa_tinytext1` tinytext DEFAULT NULL,

mysql-test/main/sp-vars.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1307,7 +1307,7 @@ $$
13071307
SHOW CREATE TABLE t1;
13081308
Table Create Table
13091309
t1 CREATE TABLE "t1" (
1310-
"var" char(1) DEFAULT NULL
1310+
"var" varchar(1) DEFAULT NULL
13111311
)
13121312
DROP TABLE t1;
13131313
#

mysql-test/main/type_enum.result

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2353,3 +2353,34 @@ a FLOOR(a) CEILING(a) TRUNCATE(a,0) ROUND(a)
23532353
999999999999999999999999999999999999999999999999999999999999 1 1 1 1
23542354
DROP TABLE t2;
23552355
DROP TABLE t1;
2356+
#
2357+
# MDEV-29062 Wrong result set metadata for a mix of INT+ENUM
2358+
#
2359+
CREATE TABLE t1
2360+
(
2361+
c_int INT,
2362+
c_enum ENUM('1')
2363+
);
2364+
CREATE TABLE t2 AS SELECT c_int FROM t1 UNION SELECT c_enum FROM t1;
2365+
SHOW CREATE TABLE t2;
2366+
Table Create Table
2367+
t2 CREATE TABLE `t2` (
2368+
`c_int` varchar(11) DEFAULT NULL
2369+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
2370+
DROP TABLE t2;
2371+
CREATE OR REPLACE TABLE t2 AS SELECT COALESCE(c_int, c_enum) FROM t1;
2372+
SHOW CREATE TABLE t2;
2373+
Table Create Table
2374+
t2 CREATE TABLE `t2` (
2375+
`COALESCE(c_int, c_enum)` varchar(11) DEFAULT NULL
2376+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
2377+
DROP TABLE t2;
2378+
SELECT c_int FROM t1 UNION SELECT c_enum FROM t1;
2379+
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
2380+
def c_int c_int 253 11 0 Y 0 0 8
2381+
c_int
2382+
SELECT COALESCE(c_int, c_enum) FROM t1;
2383+
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
2384+
def COALESCE(c_int, c_enum) 253 11 0 Y 0 39 8
2385+
COALESCE(c_int, c_enum)
2386+
DROP TABLE t1;

mysql-test/main/type_enum.test

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,3 +551,31 @@ SHOW CREATE TABLE t2;
551551
SELECT * FROM t2;
552552
DROP TABLE t2;
553553
DROP TABLE t1;
554+
555+
556+
--echo #
557+
--echo # MDEV-29062 Wrong result set metadata for a mix of INT+ENUM
558+
--echo #
559+
560+
CREATE TABLE t1
561+
(
562+
c_int INT,
563+
c_enum ENUM('1')
564+
);
565+
566+
CREATE TABLE t2 AS SELECT c_int FROM t1 UNION SELECT c_enum FROM t1;
567+
SHOW CREATE TABLE t2;
568+
DROP TABLE t2;
569+
570+
CREATE OR REPLACE TABLE t2 AS SELECT COALESCE(c_int, c_enum) FROM t1;
571+
SHOW CREATE TABLE t2;
572+
DROP TABLE t2;
573+
574+
--disable_ps_protocol
575+
--enable_metadata
576+
SELECT c_int FROM t1 UNION SELECT c_enum FROM t1;
577+
SELECT COALESCE(c_int, c_enum) FROM t1;
578+
--disable_metadata
579+
--enable_ps_protocol
580+
581+
DROP TABLE t1;

mysql-test/main/type_set.result

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,3 +379,34 @@ a FLOOR(a) CEILING(a) TRUNCATE(a,0) ROUND(a)
379379
999999999999999999999999999999999999999999999999999999999999 1 1 1 1
380380
DROP TABLE t2;
381381
DROP TABLE t1;
382+
#
383+
# MDEV-29062 Wrong result set metadata for a mix of INT+ENUM
384+
#
385+
CREATE TABLE t1
386+
(
387+
c_int INT,
388+
c_set SET('1')
389+
);
390+
CREATE TABLE t2 AS SELECT c_int FROM t1 UNION SELECT c_set FROM t1;
391+
SHOW CREATE TABLE t2;
392+
Table Create Table
393+
t2 CREATE TABLE `t2` (
394+
`c_int` varchar(11) DEFAULT NULL
395+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
396+
DROP TABLE t2;
397+
CREATE OR REPLACE TABLE t2 AS SELECT COALESCE(c_int, c_set) FROM t1;
398+
SHOW CREATE TABLE t2;
399+
Table Create Table
400+
t2 CREATE TABLE `t2` (
401+
`COALESCE(c_int, c_set)` varchar(11) DEFAULT NULL
402+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
403+
DROP TABLE t2;
404+
SELECT c_int FROM t1 UNION SELECT c_set FROM t1;
405+
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
406+
def c_int c_int 253 33 0 Y 0 0 33
407+
c_int
408+
SELECT COALESCE(c_int, c_set) FROM t1;
409+
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
410+
def COALESCE(c_int, c_set) 253 33 0 Y 0 39 33
411+
COALESCE(c_int, c_set)
412+
DROP TABLE t1;

mysql-test/main/type_set.test

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,3 +261,31 @@ SHOW CREATE TABLE t2;
261261
SELECT * FROM t2;
262262
DROP TABLE t2;
263263
DROP TABLE t1;
264+
265+
266+
--echo #
267+
--echo # MDEV-29062 Wrong result set metadata for a mix of INT+ENUM
268+
--echo #
269+
270+
CREATE TABLE t1
271+
(
272+
c_int INT,
273+
c_set SET('1')
274+
);
275+
276+
CREATE TABLE t2 AS SELECT c_int FROM t1 UNION SELECT c_set FROM t1;
277+
SHOW CREATE TABLE t2;
278+
DROP TABLE t2;
279+
280+
CREATE OR REPLACE TABLE t2 AS SELECT COALESCE(c_int, c_set) FROM t1;
281+
SHOW CREATE TABLE t2;
282+
DROP TABLE t2;
283+
284+
--disable_ps_protocol
285+
--enable_metadata
286+
SELECT c_int FROM t1 UNION SELECT c_set FROM t1;
287+
SELECT COALESCE(c_int, c_set) FROM t1;
288+
--disable_metadata
289+
--enable_ps_protocol
290+
291+
DROP TABLE t1;

mysql-test/suite/compat/oracle/r/sp-anchor-row-type-table.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Table Create Table
2121
t2 CREATE TABLE "t2" (
2222
"a" int(11) DEFAULT NULL,
2323
"b" text DEFAULT NULL,
24-
"c" char(1) DEFAULT NULL
24+
"c" varchar(1) DEFAULT NULL
2525
)
2626
DROP PROCEDURE p2;
2727
DROP PROCEDURE p1;

mysql-test/suite/compat/oracle/r/sp.result

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1703,8 +1703,8 @@ t2 CREATE TABLE "t2" (
17031703
"t2" text DEFAULT NULL,
17041704
"t3" mediumtext DEFAULT NULL,
17051705
"t4" longtext DEFAULT NULL,
1706-
"enum1" char(1) DEFAULT NULL,
1707-
"set1" char(5) DEFAULT NULL,
1706+
"enum1" varchar(1) DEFAULT NULL,
1707+
"set1" varchar(5) DEFAULT NULL,
17081708
"blob1" tinyblob DEFAULT NULL,
17091709
"blob2" longblob DEFAULT NULL,
17101710
"blob3" mediumblob DEFAULT NULL,
@@ -1865,8 +1865,8 @@ t2 CREATE TABLE "t2" (
18651865
"t2" text DEFAULT NULL,
18661866
"t3" mediumtext DEFAULT NULL,
18671867
"t4" longtext DEFAULT NULL,
1868-
"enum1" char(1) DEFAULT NULL,
1869-
"set1" char(5) DEFAULT NULL,
1868+
"enum1" varchar(1) DEFAULT NULL,
1869+
"set1" varchar(5) DEFAULT NULL,
18701870
"blob1" tinyblob DEFAULT NULL,
18711871
"blob2" longblob DEFAULT NULL,
18721872
"blob3" mediumblob DEFAULT NULL,
@@ -2370,7 +2370,7 @@ t1 CREATE TABLE "t1" (
23702370
"a_flt0" float DEFAULT NULL,
23712371
"a_dbl0" double DEFAULT NULL,
23722372
"a_bit3" bit(3) DEFAULT NULL,
2373-
"a_enum0" char(1) DEFAULT NULL,
2373+
"a_enum0" varchar(1) DEFAULT NULL,
23742374
"a_varchar10" varchar(10) DEFAULT NULL,
23752375
"a_text1" text DEFAULT NULL,
23762376
"a_tinytext1" tinytext DEFAULT NULL,
@@ -2388,7 +2388,7 @@ t1 CREATE TABLE "t1" (
23882388
"aa_flt0" float DEFAULT NULL,
23892389
"aa_dbl0" double DEFAULT NULL,
23902390
"aa_bit3" bit(3) DEFAULT NULL,
2391-
"aa_enum0" char(1) DEFAULT NULL,
2391+
"aa_enum0" varchar(1) DEFAULT NULL,
23922392
"aa_varchar10" varchar(10) DEFAULT NULL,
23932393
"aa_text1" text DEFAULT NULL,
23942394
"aa_tinytext1" tinytext DEFAULT NULL,

0 commit comments

Comments
 (0)