--source ../include/have_columnstore.inc SET default_storage_engine=ColumnStore; --disable_warnings DROP DATABASE IF EXISTS mcs_union; --enable_warnings CREATE DATABASE mcs_union; USE mcs_union; --echo # --echo # MCOL-4700 Wrong result of a UNION for INT and INT UNSIGNED --echo # 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; SELECT * FROM (SELECT b FROM t1 UNION SELECT a FROM t1) tu ORDER BY b; 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; (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; 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; (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; 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; (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; 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; (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; 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; (SELECT a FROM t2 UNION ALL SELECT a FROM t1) ORDER BY a; DROP TABLE t1,t2; DROP DATABASE mcs_union;