mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-04-26 11:48:52 +03:00
923 lines
15 KiB
Plaintext
923 lines
15 KiB
Plaintext
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
|
|
#
|
|
# Move the UNIONs from the subqueries to outer selects and add
|
|
# ORDER BY clause after MCOL-5222 is fixed
|
|
#
|
|
CREATE TABLE t1 (a INT, b INT UNSIGNED);
|
|
INSERT INTO t1 VALUES (-1, 1), (-1, 1), (-2, 2);
|
|
SELECT * FROM (SELECT * FROM t1 UNION SELECT * FROM t1) tu ORDER BY b;
|
|
a b
|
|
-1 1
|
|
-2 2
|
|
SELECT * FROM (SELECT a FROM t1 UNION SELECT b FROM t1) tu ORDER BY a;
|
|
a
|
|
-2
|
|
-1
|
|
1
|
|
2
|
|
SELECT * FROM (SELECT b FROM t1 UNION SELECT a FROM t1) tu ORDER BY b;
|
|
b
|
|
-2
|
|
-1
|
|
1
|
|
2
|
|
DROP TABLE t1;
|
|
#
|
|
# Multiple Columns Union
|
|
#
|
|
CREATE TABLE t1 (a INT, b INT, c INT);
|
|
INSERT INTO t1 VALUES (-1, 1, 0), (-2, 2, 0), (-3, 3, 0), (-4, 4, 0), (-5, 5, 0), (-1, 1, 0), (-2, 2, 0), (-3, 3, 0), (-4, 4, 0), (-5, 5, 0);
|
|
SELECT * FROM (SELECT * FROM t1 UNION ALL SELECT * FROM t1) tu ORDER BY b;
|
|
a b c
|
|
-1 1 0
|
|
-1 1 0
|
|
-1 1 0
|
|
-1 1 0
|
|
-2 2 0
|
|
-2 2 0
|
|
-2 2 0
|
|
-2 2 0
|
|
-3 3 0
|
|
-3 3 0
|
|
-3 3 0
|
|
-3 3 0
|
|
-4 4 0
|
|
-4 4 0
|
|
-4 4 0
|
|
-4 4 0
|
|
-5 5 0
|
|
-5 5 0
|
|
-5 5 0
|
|
-5 5 0
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT b FROM t1) tu ORDER BY a;
|
|
a
|
|
-5
|
|
-5
|
|
-4
|
|
-4
|
|
-3
|
|
-3
|
|
-2
|
|
-2
|
|
-1
|
|
-1
|
|
1
|
|
1
|
|
2
|
|
2
|
|
3
|
|
3
|
|
4
|
|
4
|
|
5
|
|
5
|
|
SELECT * FROM (SELECT b FROM t1 UNION ALL SELECT a FROM t1) tu ORDER BY b;
|
|
b
|
|
-5
|
|
-5
|
|
-4
|
|
-4
|
|
-3
|
|
-3
|
|
-2
|
|
-2
|
|
-1
|
|
-1
|
|
1
|
|
1
|
|
2
|
|
2
|
|
3
|
|
3
|
|
4
|
|
4
|
|
5
|
|
5
|
|
DROP TABLE t1;
|
|
#
|
|
# Same Int Type Union
|
|
#
|
|
CREATE TABLE t1 (a INT UNSIGNED, b INT UNSIGNED);
|
|
INSERT INTO t1 VALUES (1, 1), (1, 1), (2, 1), (2, 1), (3, 2), (4, 2), (5, 2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION SELECT b FROM t1) tu ORDER BY a;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
SELECT * FROM (SELECT b FROM t1 UNION SELECT a FROM t1) tu ORDER BY b;
|
|
b
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
SELECT * FROM (SELECT * FROM t1 UNION SELECT * FROM t1) tu ORDER BY a;
|
|
a b
|
|
1 1
|
|
2 1
|
|
3 2
|
|
4 2
|
|
5 2
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (a INT, b INT);
|
|
INSERT INTO t1 VALUES (-1, -1), (-1, -1), (2, 1), (2, 1), (3, 2), (4, 2), (5, 2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION SELECT b FROM t1) tu ORDER BY a;
|
|
a
|
|
-1
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
SELECT * FROM (SELECT b FROM t1 UNION SELECT a FROM t1) tu ORDER BY b;
|
|
b
|
|
-1
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
SELECT * FROM (SELECT * FROM t1 UNION SELECT * FROM t1) tu ORDER BY a;
|
|
a b
|
|
-1 -1
|
|
2 1
|
|
3 2
|
|
4 2
|
|
5 2
|
|
DROP TABLE t1;
|
|
#
|
|
# Signed Int Union
|
|
#
|
|
CREATE TABLE t1 (a TINYINT);
|
|
INSERT INTO t1 VALUES (CAST(0xFFFFFFFFFFFFFF80 AS SIGNED)+2),(-1),(0),(1),(0x7F);
|
|
CREATE TABLE t2 (a SMALLINT);
|
|
INSERT INTO t2 VALUES (CAST(0xFFFFFFFFFFFF8000 AS SIGNED)+2),(-1),(0),(1),(0x7FFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-32766
|
|
-126
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
32767
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-32766
|
|
-126
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
32767
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a MEDIUMINT);
|
|
INSERT INTO t2 VALUES (CAST(0xFFFFFFFFFF800000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-8388606
|
|
-126
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
8388607
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-8388606
|
|
-126
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
8388607
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a INT);
|
|
INSERT INTO t2 VALUES (CAST(0xFFFFFFFF80000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-2147483646
|
|
-126
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
2147483647
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-2147483646
|
|
-126
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
2147483647
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a BIGINT);
|
|
INSERT INTO t2 VALUES (CAST(0x8000000000000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFFFFFFFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-126
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
9223372036854775807
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-126
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
9223372036854775807
|
|
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 MEDIUMINT);
|
|
INSERT INTO t2 VALUES (CAST(0xFFFFFFFFFF800000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-8388606
|
|
-32766
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
32767
|
|
8388607
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-8388606
|
|
-32766
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
32767
|
|
8388607
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a INT);
|
|
INSERT INTO t2 VALUES (CAST(0xFFFFFFFF80000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-2147483646
|
|
-32766
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
32767
|
|
2147483647
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-2147483646
|
|
-32766
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
32767
|
|
2147483647
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a BIGINT);
|
|
INSERT INTO t2 VALUES (CAST(0x8000000000000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFFFFFFFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-32766
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
32767
|
|
9223372036854775807
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-32766
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
32767
|
|
9223372036854775807
|
|
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);
|
|
INSERT INTO t2 VALUES (CAST(0xFFFFFFFF80000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-2147483646
|
|
-8388606
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
8388607
|
|
2147483647
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-2147483646
|
|
-8388606
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
8388607
|
|
2147483647
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a BIGINT);
|
|
INSERT INTO t2 VALUES (CAST(0x8000000000000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFFFFFFFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-8388606
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
8388607
|
|
9223372036854775807
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-8388606
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
8388607
|
|
9223372036854775807
|
|
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 BIGINT);
|
|
INSERT INTO t2 VALUES (CAST(0x8000000000000000 AS SIGNED)+2),(-1),(0),(1),(0x7FFFFFFFFFFFFFFF);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-2147483646
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
2147483647
|
|
9223372036854775807
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-2147483646
|
|
-1
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
2147483647
|
|
9223372036854775807
|
|
DROP TABLE t1,t2;
|
|
#
|
|
# Unsigned Int Union
|
|
#
|
|
CREATE TABLE t1 (a TINYINT UNSIGNED);
|
|
INSERT INTO t1 VALUES (0),(1),(0xFF-2);
|
|
CREATE TABLE t2 (a SMALLINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
253
|
|
65533
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
253
|
|
65533
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a MEDIUMINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
253
|
|
16777213
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
253
|
|
16777213
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a INT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
253
|
|
4294967293
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
253
|
|
4294967293
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a BIGINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFFFFFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
253
|
|
18446744073709551613
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
253
|
|
18446744073709551613
|
|
DROP TABLE t1,t2;
|
|
CREATE TABLE t1 (a SMALLINT UNSIGNED);
|
|
INSERT INTO t1 VALUES (0),(1),(0xFFFF-2);
|
|
CREATE TABLE t2 (a MEDIUMINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
65533
|
|
16777213
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
65533
|
|
16777213
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a INT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
65533
|
|
4294967293
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
65533
|
|
4294967293
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a BIGINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFFFFFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
65533
|
|
18446744073709551613
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
65533
|
|
18446744073709551613
|
|
DROP TABLE t1,t2;
|
|
CREATE TABLE t1 (a MEDIUMINT UNSIGNED);
|
|
INSERT INTO t1 VALUES (0),(1),(0xFFFFFF-2);
|
|
CREATE TABLE t2 (a INT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
16777213
|
|
4294967293
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
16777213
|
|
4294967293
|
|
DROP TABLE t2;
|
|
CREATE TABLE t2 (a BIGINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFFFFFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
16777213
|
|
18446744073709551613
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
16777213
|
|
18446744073709551613
|
|
DROP TABLE t1,t2;
|
|
CREATE TABLE t1 (a INT UNSIGNED);
|
|
INSERT INTO t1 VALUES (0),(1),(0xFFFFFFFF-2);
|
|
CREATE TABLE t2 (a BIGINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFFFFFFFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
4294967293
|
|
18446744073709551613
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
0
|
|
0
|
|
1
|
|
1
|
|
4294967293
|
|
18446744073709551613
|
|
DROP TABLE t1,t2;
|
|
#
|
|
# Same Size Different Signedness Int Union
|
|
#
|
|
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 * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-126
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
253
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu 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 SMALLINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT * FROM t2) tu ORDER BY a;
|
|
a
|
|
-32766
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
32767
|
|
65533
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu 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 MEDIUMINT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-8388606
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
8388607
|
|
16777213
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu 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 * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-2147483646
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
2147483647
|
|
4294967293
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu 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 * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
9223372036854775807
|
|
18446744073709551613
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
9223372036854775807
|
|
18446744073709551613
|
|
DROP TABLE t1,t2;
|
|
#
|
|
# Different Size Different Signedness Int Union
|
|
#
|
|
CREATE TABLE t1 (a TINYINT);
|
|
INSERT INTO t1 VALUES (CAST(0xFFFFFFFFFFFFFF80 AS SIGNED)+2),(-1),(0),(1),(0x7F);
|
|
CREATE TABLE t2 (a INT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT * FROM t2) tu ORDER BY a;
|
|
a
|
|
-126
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
65533
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-126
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
127
|
|
65533
|
|
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 * FROM (SELECT a FROM t1 UNION ALL SELECT * FROM t2) tu ORDER BY a;
|
|
a
|
|
-32766
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
32767
|
|
65533
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu 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 * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-8388606
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
8388607
|
|
16777213
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-8388606
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
8388607
|
|
16777213
|
|
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 INT UNSIGNED);
|
|
INSERT INTO t2 VALUES (0),(1),(0xFFFFFF-2);
|
|
SELECT * FROM (SELECT a FROM t1 UNION ALL SELECT a FROM t2) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
16777213
|
|
9223372036854775807
|
|
SELECT * FROM (SELECT a FROM t2 UNION ALL SELECT a FROM t1) tu ORDER BY a;
|
|
a
|
|
-9223372036854775806
|
|
-1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
16777213
|
|
9223372036854775807
|
|
DROP TABLE t1,t2;
|
|
#
|
|
# Union of tables containing different string data types
|
|
#
|
|
# Remove the sorted_result MTR qualifier and add ORDER BY clause
|
|
# after MCOL-5222 is fixed
|
|
#
|
|
CREATE TABLE t1 (a CHAR(6));
|
|
INSERT INTO t1 VALUES ('t13abc'), ('t13xx'), ('common');
|
|
CREATE TABLE t2 (a VARCHAR(8));
|
|
INSERT INTO t2 VALUES ('t14abcde'), ('t14xyzzz'), ('common');
|
|
SELECT * FROM t1 UNION SELECT * FROM t2;
|
|
a
|
|
common
|
|
t13abc
|
|
t13xx
|
|
t14abcde
|
|
t14xyzzz
|
|
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
|
SELECT * FROM t2 UNION ALL SELECT * FROM t1;
|
|
a
|
|
common
|
|
common
|
|
t13abc
|
|
t13xx
|
|
t14abcde
|
|
t14xyzzz
|
|
EXPLAIN SELECT * FROM t2 UNION ALL SELECT * FROM t1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
|
SELECT * FROM t1 UNION SELECT * FROM t2 UNION SELECT '123456789000';
|
|
a
|
|
123456789000
|
|
common
|
|
t13abc
|
|
t13xx
|
|
t14abcde
|
|
t14xyzzz
|
|
EXPLAIN SELECT * FROM t1 UNION SELECT * FROM t2 UNION SELECT '123456789000';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
|
SELECT * FROM t1 UNION SELECT '123456789000' UNION SELECT * FROM t2;
|
|
a
|
|
123456789000
|
|
common
|
|
t13abc
|
|
t13xx
|
|
t14abcde
|
|
t14xyzzz
|
|
EXPLAIN SELECT * FROM t1 UNION SELECT '123456789000' UNION SELECT * FROM t2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
NULL PUSHED UNION NULL NULL NULL NULL NULL NULL NULL NULL
|
|
DROP TABLE t1,t2;
|
|
DROP DATABASE mcs_union;
|