SET default_storage_engine=ColumnStore; DROP DATABASE IF EXISTS mcs_union; CREATE DATABASE mcs_union; USE mcs_union; # # MCOL-4700 Wrong result of a UNION for INT and INT UNSIGNED # CREATE TABLE t1 (a INT, b INT UNSIGNED); INSERT INTO t1 VALUES (-1,1); SELECT * FROM (SELECT a FROM t1 UNION SELECT b FROM t1) tu ORDER BY a; a -1 1 SELECT * FROM (SELECT b FROM t1 UNION SELECT a FROM t1) tu ORDER BY b; b -1 1 DROP TABLE t1; CREATE TABLE t1 (a TINYINT); INSERT INTO t1 VALUES (CAST(0xFFFFFFFFFFFFFF80 AS SIGNED)+2),(-1),(0),(1),(0x7F); CREATE TABLE t2 (a TINYINT UNSIGNED); INSERT INTO t2 VALUES (0),(1),(0xFF-2); (SELECT a FROM t1 UNION ALL SELECT a FROM t2) ORDER BY a; a -126 -1 0 0 1 1 127 253 (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; a -126 -1 0 0 1 1 127 253 DROP TABLE t1,t2; CREATE TABLE t1 (a SMALLINT); INSERT INTO t1 VALUES (CAST(0xFFFFFFFFFFFF8000 AS SIGNED)+2),(-1),(0),(1),(0x7FFF); CREATE TABLE t2 (a INT UNSIGNED); INSERT INTO t2 VALUES (0),(1),(0xFFFF-2); (SELECT a FROM t1 UNION ALL SELECT * FROM t2) ORDER BY a; a -32766 -1 0 0 1 1 32767 65533 (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; a -32766 -1 0 0 1 1 32767 65533 DROP TABLE t1,t2; CREATE TABLE t1 (a MEDIUMINT); INSERT INTO t1 VALUES (CAST(0xFFFFFFFFFF800000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFF); CREATE TABLE t2 (a INT UNSIGNED); INSERT INTO t2 VALUES (0),(1),(0xFFFFFF-2); (SELECT a FROM t1 UNION ALL SELECT a FROM t2) ORDER BY a; a -8388606 -1 0 0 1 1 8388607 16777213 (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; a -8388606 -1 0 0 1 1 8388607 16777213 DROP TABLE t1,t2; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (CAST(0xFFFFFFFF80000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFF); CREATE TABLE t2 (a INT UNSIGNED); INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFF-2); (SELECT a FROM t1 UNION ALL SELECT a FROM t2) ORDER BY a; a -2147483646 -1 0 0 1 1 2147483647 4294967293 (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; a -2147483646 -1 0 0 1 1 2147483647 4294967293 DROP TABLE t1,t2; CREATE TABLE t1 (a BIGINT); INSERT INTO t1 VALUES (CAST(0x8000000000000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFFFFFFFFFF); CREATE TABLE t2 (a BIGINT UNSIGNED); INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFFFFFFFFFF-2); (SELECT a FROM t1 UNION ALL SELECT a FROM t2) ORDER BY a; a -9223372036854775806 -1 0 0 1 1 9223372036854775807 18446744073709551613 (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; a -9223372036854775806 -1 0 0 1 1 9223372036854775807 18446744073709551613 DROP TABLE t1,t2; DROP DATABASE mcs_union;