1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

MCOL-641 Move MTR tests from future/ to basic/

This commit is contained in:
Gagan Goel
2021-07-08 08:49:26 +00:00
parent 4069a48f42
commit 78dbf3a7e1
22 changed files with 19 additions and 17 deletions

View File

@ -0,0 +1,499 @@
DROP DATABASE IF EXISTS test_mcol641_aggregate;
CREATE DATABASE test_mcol641_aggregate;
USE test_mcol641_aggregate;
DROP TABLE IF EXISTS cs1;
DROP TABLE IF EXISTS cs2;
DROP TABLE IF EXISTS cs3;
DROP TABLE IF EXISTS cs4;
DROP TABLE IF EXISTS cs5;
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 DECIMAL(38),d5 DECIMAL(38),i1 INT) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED, d4 DECIMAL(38),d5 DECIMAL(38),i1 INT) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(19), d2 DECIMAL(19,10), d3 DECIMAL(19,19), d4 DECIMAL(19),d5 DECIMAL(19),i1 INT) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(19) UNSIGNED, d2 DECIMAL(19,10) UNSIGNED, d3 DECIMAL(19,19) UNSIGNED, d4 DECIMAL(19) UNSIGNED,d5 DECIMAL(19),i1 INT) ENGINE=columnstore;
CREATE TABLE cs5(d DECIMAL(25,19)) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(1234,5678,-0.12345678901234567890123456789018,2,1,1),
(1234,-5678,0.1234567890123456789012345,2,1,1),
(12345678901234567890123,1234567890123456789012.9012345678,0.123456789012345678901234567890,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.1234567890123456783456789012345678,3,2,2),
(-123456789123456789,-5678,0.123456789012345673456789012345678,3,2,2),
(12345678901234567890901,1234567890123478901234.9012345678,0.1234567890123456789012345678908,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111112,1,1);
INSERT INTO cs2 VALUES
(1234,5678,0.12345678901234567890123456789018,2,1,1),
(1234,5678,0.1234567890123456789012345,2,1,1),
(12345678901234567890123,1234567890123456789012.9012345678,0.123456789012345678901234567890,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.1234567890123456783456789012345678,3,2,2),
(123456789123456789123,5678,0.123456789012345673456789012345678,3,2,2),
(12345678901234567890901,1234567890123478901234.9012345678,0.1234567890123456789012345678908,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111112,1,1);
INSERT INTO cs3 VALUES
(1234,5678,-0.12345678901234,2,1,1),
(1234,-5678,0.12345678901234,2,1,1),
(12345678901,12345678.90128,0.1234567890123,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.12345678901234,3,2,2),
(-1234567899,-5678,0.1234567890123,3,2,2),
(12345678901,12345678.9012,0.1234567890123,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2);
INSERT INTO cs4 VALUES
(1234,5678,0.12345678901234,2,1,1),
(1234,5678,0.12345678901234,2,1,1),
(12345678901,12345678.90128,0.1234567890123,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.12345678901234,3,2,2),
(1234567899,5678,0.1234567890123,3,2,2),
(12345678901,12345678.90123,0.1234567890123,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2);
SELECT "sum(38)_test1", sum(d1),sum(d2),sum(d3) FROM cs1;
sum(38)_test1 sum(d1) sum(d2) sum(d3)
sum(38)_test1 24691234345680012331639 2469135780246935707281.8024691356 0.12345678901234567290123327780032580000
SELECT "avg(38)_test1", avg(d1),avg(d2),avg(d3) FROM cs1;
avg(38)_test1 avg(d1) avg(d2) avg(d3)
avg(38)_test1 2244657667789092030149.0000 224466889113357791571.07295173960000 0.01122334445566778844556666161821143636
SELECT "count(38)_test1", count(d1),count(d2),count(d3) FROM cs1;
count(38)_test1 count(d1) count(d2) count(d3)
count(38)_test1 11 11 11
SELECT "min(38)_test1", min(d1),min(d2),min(d3) FROM cs1;
min(38)_test1 min(d1) min(d2) min(d3)
min(38)_test1 -123456789123456789 -5678.0000000000 -0.12345678901234567890123456789018000000
SELECT "max(38)_test1", max(d1),max(d2),max(d3) FROM cs1;
max(38)_test1 max(d1) max(d2) max(d3)
max(38)_test1 12345678901234567890901 1234567890123478901234.9012345678 0.12345678901234567890123456789080000000
SELECT "group_concat(38)_test1", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs1;
group_concat(38)_test1 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_test1 -123456789123456789,0,0,1234,1234,1234,1234,1234,1234,12345678901234567890123,12345678901234567890901 -5678.0000000000,-5678.0000000000,0.0000000000,0.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,1234567890123456789012.9012345678,1234567890123478901234.9012345678 -0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,0.00000000000000000000000000000000000000,0.00000000000000000000000000000000000000,0.12345678901234567345678901234567800000,0.12345678901234567834567890123456780000,0.12345678901234567890123450000000000000,0.12345678901234567890123456789000000000,0.12345678901234567890123456789080000000
SELECT "count(distinct 38)_test1", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs1;
count(distinct 38)_test1 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_test1 5 5 7
SELECT "sum(38)_test1", sum(d1),sum(d2),sum(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
sum(38)_test1 sum(d1) sum(d2) sum(d3)
sum(38)_test1 24691234345680012331639 2469135780246935707281.8024691356 0.12345678901234567290123327780032580000
SELECT "avg(38)_test1", avg(d1),avg(d2),avg(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
avg(38)_test1 avg(d1) avg(d2) avg(d3)
avg(38)_test1 2244657667789092030149.0000 224466889113357791571.07295173960000 0.01122334445566778844556666161821143636
SELECT "count(38)_test1", count(d1),count(d2),count(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
count(38)_test1 count(d1) count(d2) count(d3)
count(38)_test1 11 11 11
SELECT "min(38)_test1", min(d1),min(d2),min(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
min(38)_test1 min(d1) min(d2) min(d3)
min(38)_test1 -123456789123456789 -5678.0000000000 -0.12345678901234567890123456789018000000
SELECT "max(38)_test1", max(d1),max(d2),max(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
max(38)_test1 max(d1) max(d2) max(d3)
max(38)_test1 12345678901234567890901 1234567890123478901234.9012345678 0.12345678901234567890123456789080000000
SELECT "group_concat(38)_test1", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
group_concat(38)_test1 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_test1 -123456789123456789,0,0,1234,1234,1234,1234,1234,1234,12345678901234567890123,12345678901234567890901 -5678.0000000000,-5678.0000000000,0.0000000000,0.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,1234567890123456789012.9012345678,1234567890123478901234.9012345678 -0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,0.00000000000000000000000000000000000000,0.00000000000000000000000000000000000000,0.12345678901234567345678901234567800000,0.12345678901234567834567890123456780000,0.12345678901234567890123450000000000000,0.12345678901234567890123456789000000000,0.12345678901234567890123456789080000000
SELECT "count(distinct 38)_test1", count(distinct d1),count(distinct d2),count(distinct d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
count(distinct 38)_test1 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_test1 5 5 7
SELECT "sum(38)_GB(38)_test1" ,d4,d5,sum(d1),sum(d2),sum(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
sum(38)_GB(38)_test1 d4 d5 sum(d1) sum(d2) sum(d3)
sum(38)_GB(38)_test1 2 1 12345678901234567892591 1234567890123456789012.9012345678 0.12345678901234567890123449999982000000
sum(38)_GB(38)_test1 3 2 12345555444445444435346 1234567890123478901234.9012345678 0.37037036703703703070370248147104580000
sum(38)_GB(38)_test1 11111111111111111111111111111111 1 2468 11356.0000000000 -0.24691357802469135780246913578036000000
sum(38)_GB(38)_test1 11111111111111111111111111111112 1 1234 5678.0000000000 -0.12345678901234567890123456789018000000
SELECT "avg(38)_GB(38)_test1" ,d4,d5,avg(d1),avg(d2),avg(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
avg(38)_GB(38)_test1 d4 d5 avg(d1) avg(d2) avg(d3)
avg(38)_GB(38)_test1 2 1 3086419725308641973147.7500 308641972530864197253.22530864195000 0.03086419725308641972530862499995500000
avg(38)_GB(38)_test1 3 2 3086388861111361108836.5000 308641972530869725308.72530864195000 0.09259259175925925767592562036776145000
avg(38)_GB(38)_test1 11111111111111111111111111111111 1 1234.0000 5678.00000000000000 -0.12345678901234567890123456789018000000
avg(38)_GB(38)_test1 11111111111111111111111111111112 1 1234.0000 5678.00000000000000 -0.12345678901234567890123456789018000000
SELECT "count(38)_GB(38)_test1" ,d4,d5,count(d1),count(d2),count(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
count(38)_GB(38)_test1 d4 d5 count(d1) count(d2) count(d3)
count(38)_GB(38)_test1 2 1 4 4 4
count(38)_GB(38)_test1 3 2 4 4 4
count(38)_GB(38)_test1 11111111111111111111111111111111 1 2 2 2
count(38)_GB(38)_test1 11111111111111111111111111111112 1 1 1 1
SELECT "min(38)_GB(38)_test1" ,d4,d5,min(d1),min(d2),min(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
min(38)_GB(38)_test1 d4 d5 min(d1) min(d2) min(d3)
min(38)_GB(38)_test1 2 1 0 -5678.0000000000 -0.12345678901234567890123456789018000000
min(38)_GB(38)_test1 3 2 -123456789123456789 -5678.0000000000 0.00000000000000000000000000000000000000
min(38)_GB(38)_test1 11111111111111111111111111111111 1 1234 5678.0000000000 -0.12345678901234567890123456789018000000
min(38)_GB(38)_test1 11111111111111111111111111111112 1 1234 5678.0000000000 -0.12345678901234567890123456789018000000
SELECT "max(38)_GB(38)_test1" ,d4,d5,max(d1),max(d2),max(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
max(38)_GB(38)_test1 d4 d5 max(d1) max(d2) max(d3)
max(38)_GB(38)_test1 2 1 12345678901234567890123 1234567890123456789012.9012345678 0.12345678901234567890123456789000000000
max(38)_GB(38)_test1 3 2 12345678901234567890901 1234567890123478901234.9012345678 0.12345678901234567890123456789080000000
max(38)_GB(38)_test1 11111111111111111111111111111111 1 1234 5678.0000000000 -0.12345678901234567890123456789018000000
max(38)_GB(38)_test1 11111111111111111111111111111112 1 1234 5678.0000000000 -0.12345678901234567890123456789018000000
SELECT "group_concat(38)_GB(38)_test1", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2;
group_concat(38)_GB(38)_test1 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_GB(38)_test1 -123456789123456789,0,1234,12345678901234567890901 -5678.0000000000,0.0000000000,5678.0000000000,1234567890123478901234.9012345678 0.00000000000000000000000000000000000000,0.12345678901234567345678901234567800000,0.12345678901234567834567890123456780000,0.12345678901234567890123456789080000000
group_concat(38)_GB(38)_test1 0,1234,1234,12345678901234567890123 -5678.0000000000,0.0000000000,5678.0000000000,1234567890123456789012.9012345678 -0.12345678901234567890123456789018000000,0.00000000000000000000000000000000000000,0.12345678901234567890123450000000000000,0.12345678901234567890123456789000000000
group_concat(38)_GB(38)_test1 1234 5678.0000000000 -0.12345678901234567890123456789018000000
group_concat(38)_GB(38)_test1 1234,1234 5678.0000000000,5678.0000000000 -0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000
SELECT "count(distinct 38)_GB(38)_test1", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
count(distinct 38)_GB(38)_test1 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_GB(38)_test1 1 1 1
count(distinct 38)_GB(38)_test1 1 1 1
count(distinct 38)_GB(38)_test1 3 4 4
count(distinct 38)_GB(38)_test1 4 4 4
SELECT "sum(38)_GB(8)_test1" ,i1,sum(d1),sum(d2),sum(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
sum(38)_GB(8)_test1 i1 sum(d1) sum(d2) sum(d3)
sum(38)_GB(8)_test1 1 12345678901234567896293 1234567890123456806046.9012345678 -0.24691357802469135780246920367072000000
sum(38)_GB(8)_test1 2 12345555444445444435346 1234567890123478901234.9012345678 0.37037036703703703070370248147104580000
SELECT "avg(38)_GB(8)_test1" ,i1,avg(d1),avg(d2),avg(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
avg(38)_GB(8)_test1 i1 avg(d1) avg(d2) avg(d3)
avg(38)_GB(8)_test1 1 1763668414462081128041.8571 176366841446208115149.55731922397143 -0.03527336828924162254320988623867428571
avg(38)_GB(8)_test1 2 3086388861111361108836.5000 308641972530869725308.72530864195000 0.09259259175925925767592562036776145000
SELECT "count(38)_GB(8)_test1" ,i1,count(d1),count(d2),count(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
count(38)_GB(8)_test1 i1 count(d1) count(d2) count(d3)
count(38)_GB(8)_test1 1 7 7 7
count(38)_GB(8)_test1 2 4 4 4
SELECT "min(38)_GB(8)_test1" ,i1,min(d1),min(d2),min(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
min(38)_GB(8)_test1 i1 min(d1) min(d2) min(d3)
min(38)_GB(8)_test1 1 0 -5678.0000000000 -0.12345678901234567890123456789018000000
min(38)_GB(8)_test1 2 -123456789123456789 -5678.0000000000 0.00000000000000000000000000000000000000
SELECT "max(38)_GB(8)_test1" ,i1,max(d1),max(d2),max(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
max(38)_GB(8)_test1 i1 max(d1) max(d2) max(d3)
max(38)_GB(8)_test1 1 12345678901234567890123 1234567890123456789012.9012345678 0.12345678901234567890123456789000000000
max(38)_GB(8)_test1 2 12345678901234567890901 1234567890123478901234.9012345678 0.12345678901234567890123456789080000000
SELECT "group_concat(38)_GB(8)_test1", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs1 GROUP BY i1 ORDER BY 2;
group_concat(38)_GB(8)_test1 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_GB(8)_test1 -123456789123456789,0,1234,12345678901234567890901 -5678.0000000000,0.0000000000,5678.0000000000,1234567890123478901234.9012345678 0.00000000000000000000000000000000000000,0.12345678901234567345678901234567800000,0.12345678901234567834567890123456780000,0.12345678901234567890123456789080000000
group_concat(38)_GB(8)_test1 0,1234,1234,1234,1234,1234,12345678901234567890123 -5678.0000000000,0.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,1234567890123456789012.9012345678 -0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,-0.12345678901234567890123456789018000000,0.00000000000000000000000000000000000000,0.12345678901234567890123450000000000000,0.12345678901234567890123456789000000000
SELECT "count(distinct 38)_GB(8)_test1", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs1 GROUP BY i1 ORDER BY 2;
count(distinct 38)_GB(8)_test1 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_GB(8)_test1 3 4 4
count(distinct 38)_GB(8)_test1 4 4 4
SELECT "sum(38)_test2", sum(d1),sum(d2),sum(d3) FROM cs2;
sum(38)_test2 sum(d1) sum(d2) sum(d3)
sum(38)_test2 24814814591592592577551 2469135780246935729993.8024691356 1.11111110111111110411110982092176580000
SELECT "avg(38)_test2", avg(d1),avg(d2),avg(d3) FROM cs2;
avg(38)_test2 avg(d1) avg(d2) avg(d3)
avg(38)_test2 2255892235599326597959.1818 224466889113357793635.80022446687273 0.10101010010101010037373725644743325455
SELECT "count(38)_test2", count(d1),count(d2),count(d3) FROM cs2;
count(38)_test2 count(d1) count(d2) count(d3)
count(38)_test2 11 11 11
SELECT "min(38)_test2", min(d1),min(d2),min(d3) FROM cs2;
min(38)_test2 min(d1) min(d2) min(d3)
min(38)_test2 0 0.0000000000 0.00000000000000000000000000000000000000
SELECT "max(38)_test2", max(d1),max(d2),max(d3) FROM cs2;
max(38)_test2 max(d1) max(d2) max(d3)
max(38)_test2 12345678901234567890901 1234567890123478901234.9012345678 0.12345678901234567890123456789080000000
SELECT "group_concat(38)_test2", group_concat(d1),group_concat(d2),group_concat(d3) FROM cs2;
group_concat(38)_test2 group_concat(d1) group_concat(d2) group_concat(d3)
group_concat(38)_test2 1234,1234,12345678901234567890123,0,1234,123456789123456789123,12345678901234567890901,0,1234,1234,1234 5678.0000000000,5678.0000000000,1234567890123456789012.9012345678,0.0000000000,5678.0000000000,5678.0000000000,1234567890123478901234.9012345678,0.0000000000,5678.0000000000,5678.0000000000,5678.0000000000 0.12345678901234567890123456789018000000,0.12345678901234567890123450000000000000,0.12345678901234567890123456789000000000,0.00000000000000000000000000000000000000,0.12345678901234567834567890123456780000,0.12345678901234567345678901234567800000,0.12345678901234567890123456789080000000,0.00000000000000000000000000000000000000,0.12345678901234567890123456789018000000,0.12345678901234567890123456789018000000,0.12345678901234567890123456789018000000
SELECT "count(distinct 38)_test2", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs2;
count(distinct 38)_test2 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_test2 5 4 7
SELECT "sum(38)_test2", sum(d1),sum(d2),sum(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
sum(38)_test2 sum(d1) sum(d2) sum(d3)
sum(38)_test2 24814814591592592577551 2469135780246935729993.8024691356 1.11111110111111110411110982092176580000
SELECT "avg(38)_test2", avg(d1),avg(d2),avg(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
avg(38)_test2 avg(d1) avg(d2) avg(d3)
avg(38)_test2 2255892235599326597959.1818 224466889113357793635.80022446687273 0.10101010010101010037373725644743325455
SELECT "count(38)_test2", count(d1),count(d2),count(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
count(38)_test2 count(d1) count(d2) count(d3)
count(38)_test2 11 11 11
SELECT "min(38)_test2", min(d1),min(d2),min(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
min(38)_test2 min(d1) min(d2) min(d3)
min(38)_test2 0 0.0000000000 0.00000000000000000000000000000000000000
SELECT "max(38)_test2", max(d1),max(d2),max(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
max(38)_test2 max(d1) max(d2) max(d3)
max(38)_test2 12345678901234567890901 1234567890123478901234.9012345678 0.12345678901234567890123456789080000000
SELECT "group_concat(38)_test2", group_concat(d1),group_concat(d2),group_concat(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
group_concat(38)_test2 group_concat(d1) group_concat(d2) group_concat(d3)
group_concat(38)_test2 1234,1234,12345678901234567890123,0,1234,123456789123456789123,12345678901234567890901,0,1234,1234,1234 5678.0000000000,5678.0000000000,1234567890123456789012.9012345678,0.0000000000,5678.0000000000,5678.0000000000,1234567890123478901234.9012345678,0.0000000000,5678.0000000000,5678.0000000000,5678.0000000000 0.12345678901234567890123456789018000000,0.12345678901234567890123450000000000000,0.12345678901234567890123456789000000000,0.00000000000000000000000000000000000000,0.12345678901234567834567890123456780000,0.12345678901234567345678901234567800000,0.12345678901234567890123456789080000000,0.00000000000000000000000000000000000000,0.12345678901234567890123456789018000000,0.12345678901234567890123456789018000000,0.12345678901234567890123456789018000000
SELECT "count(distinct 38)_test2", count(distinct d1),count(distinct d2),count(distinct d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
count(distinct 38)_test2 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_test2 5 4 7
SELECT "sum(38)_GB(38)_test2" ,d4,d5,sum(d1),sum(d2),sum(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
sum(38)_GB(38)_test2 d4 d5 sum(d1) sum(d2) sum(d3)
sum(38)_GB(38)_test2 2 1 12345678901234567892591 1234567890123456800368.9012345678 0.37037036703703703670370363578018000000
sum(38)_GB(38)_test2 3 2 12469135690358024681258 1234567890123478912590.9012345678 0.37037036703703703070370248147104580000
sum(38)_GB(38)_test2 11111111111111111111111111111111 1 2468 11356.0000000000 0.24691357802469135780246913578036000000
sum(38)_GB(38)_test2 11111111111111111111111111111112 1 1234 5678.0000000000 0.12345678901234567890123456789018000000
SELECT "avg(38)_GB(38)_test2" ,d4,d5,avg(d1),avg(d2),avg(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
avg(38)_GB(38)_test2 d4 d5 avg(d1) avg(d2) avg(d3)
avg(38)_GB(38)_test2 2 1 3086419725308641973147.7500 308641972530864200092.22530864195000 0.09259259175925925917592590894504500000
avg(38)_GB(38)_test2 3 2 3117283922589506170314.5000 308641972530869728147.72530864195000 0.09259259175925925767592562036776145000
avg(38)_GB(38)_test2 11111111111111111111111111111111 1 1234.0000 5678.00000000000000 0.12345678901234567890123456789018000000
avg(38)_GB(38)_test2 11111111111111111111111111111112 1 1234.0000 5678.00000000000000 0.12345678901234567890123456789018000000
SELECT "count(38)_GB(38)_test2" ,d4,d5,count(d1),count(d2),count(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
count(38)_GB(38)_test2 d4 d5 count(d1) count(d2) count(d3)
count(38)_GB(38)_test2 2 1 4 4 4
count(38)_GB(38)_test2 3 2 4 4 4
count(38)_GB(38)_test2 11111111111111111111111111111111 1 2 2 2
count(38)_GB(38)_test2 11111111111111111111111111111112 1 1 1 1
SELECT "min(38)_GB(38)_test2" ,d4,d5,min(d1),min(d2),min(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
min(38)_GB(38)_test2 d4 d5 min(d1) min(d2) min(d3)
min(38)_GB(38)_test2 2 1 0 0.0000000000 0.00000000000000000000000000000000000000
min(38)_GB(38)_test2 3 2 0 0.0000000000 0.00000000000000000000000000000000000000
min(38)_GB(38)_test2 11111111111111111111111111111111 1 1234 5678.0000000000 0.12345678901234567890123456789018000000
min(38)_GB(38)_test2 11111111111111111111111111111112 1 1234 5678.0000000000 0.12345678901234567890123456789018000000
SELECT "max(38)_GB(38)_test2" ,d4,d5,max(d1),max(d2),max(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
max(38)_GB(38)_test2 d4 d5 max(d1) max(d2) max(d3)
max(38)_GB(38)_test2 2 1 12345678901234567890123 1234567890123456789012.9012345678 0.12345678901234567890123456789018000000
max(38)_GB(38)_test2 3 2 12345678901234567890901 1234567890123478901234.9012345678 0.12345678901234567890123456789080000000
max(38)_GB(38)_test2 11111111111111111111111111111111 1 1234 5678.0000000000 0.12345678901234567890123456789018000000
max(38)_GB(38)_test2 11111111111111111111111111111112 1 1234 5678.0000000000 0.12345678901234567890123456789018000000
SELECT "group_concat(38)_GB(38)_test2", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
group_concat(38)_GB(38)_test2 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_GB(38)_test2 0,1234,1234,12345678901234567890123 0.0000000000,5678.0000000000,5678.0000000000,1234567890123456789012.9012345678 0.00000000000000000000000000000000000000,0.12345678901234567890123450000000000000,0.12345678901234567890123456789000000000,0.12345678901234567890123456789018000000
group_concat(38)_GB(38)_test2 0,1234,123456789123456789123,12345678901234567890901 0.0000000000,5678.0000000000,5678.0000000000,1234567890123478901234.9012345678 0.00000000000000000000000000000000000000,0.12345678901234567345678901234567800000,0.12345678901234567834567890123456780000,0.12345678901234567890123456789080000000
group_concat(38)_GB(38)_test2 1234 5678.0000000000 0.12345678901234567890123456789018000000
group_concat(38)_GB(38)_test2 1234,1234 5678.0000000000,5678.0000000000 0.12345678901234567890123456789018000000,0.12345678901234567890123456789018000000
SELECT "count(distinct 38)_GB(38)_test2", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
count(distinct 38)_GB(38)_test2 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_GB(38)_test2 1 1 1
count(distinct 38)_GB(38)_test2 1 1 1
count(distinct 38)_GB(38)_test2 3 3 4
count(distinct 38)_GB(38)_test2 4 3 4
SELECT "sum(38)_GB(8)_test2" ,i1,sum(d1),sum(d2),sum(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
sum(38)_GB(8)_test2 i1 sum(d1) sum(d2) sum(d3)
sum(38)_GB(8)_test2 1 12345678901234567896293 1234567890123456817402.9012345678 0.74074073407407407340740733945072000000
sum(38)_GB(8)_test2 2 12469135690358024681258 1234567890123478912590.9012345678 0.37037036703703703070370248147104580000
SELECT "avg(38)_GB(8)_test2" ,i1,avg(d1),avg(d2),avg(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
avg(38)_GB(8)_test2 i1 avg(d1) avg(d2) avg(d3)
avg(38)_GB(8)_test2 1 1763668414462081128041.8571 176366841446208116771.84303350968571 0.10582010486772486762962961992153142857
avg(38)_GB(8)_test2 2 3117283922589506170314.5000 308641972530869728147.72530864195000 0.09259259175925925767592562036776145000
SELECT "count(38)_GB(8)_test2" ,i1,count(d1),count(d2),count(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
count(38)_GB(8)_test2 i1 count(d1) count(d2) count(d3)
count(38)_GB(8)_test2 1 7 7 7
count(38)_GB(8)_test2 2 4 4 4
SELECT "min(38)_GB(8)_test2" ,i1,min(d1),min(d2),min(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
min(38)_GB(8)_test2 i1 min(d1) min(d2) min(d3)
min(38)_GB(8)_test2 1 0 0.0000000000 0.00000000000000000000000000000000000000
min(38)_GB(8)_test2 2 0 0.0000000000 0.00000000000000000000000000000000000000
SELECT "max(38)_GB(8)_test2" ,i1,max(d1),max(d2),max(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
max(38)_GB(8)_test2 i1 max(d1) max(d2) max(d3)
max(38)_GB(8)_test2 1 12345678901234567890123 1234567890123456789012.9012345678 0.12345678901234567890123456789018000000
max(38)_GB(8)_test2 2 12345678901234567890901 1234567890123478901234.9012345678 0.12345678901234567890123456789080000000
SELECT "group_concat(38)_GB(8)_test2", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d1),group_concat(d3 ORDER BY d1) FROM cs2 GROUP BY i1 ORDER BY 2,3;
group_concat(38)_GB(8)_test2 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d1) group_concat(d3 ORDER BY d1)
group_concat(38)_GB(8)_test2 0,1234,1234,1234,1234,1234,12345678901234567890123 0.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,1234567890123456789012.9012345678 0.00000000000000000000000000000000000000,0.12345678901234567890123450000000000000,0.12345678901234567890123456789018000000,0.12345678901234567890123456789018000000,0.12345678901234567890123456789018000000,0.12345678901234567890123456789018000000,0.12345678901234567890123456789000000000
group_concat(38)_GB(8)_test2 0,1234,123456789123456789123,12345678901234567890901 0.0000000000,5678.0000000000,5678.0000000000,1234567890123478901234.9012345678 0.00000000000000000000000000000000000000,0.12345678901234567834567890123456780000,0.12345678901234567345678901234567800000,0.12345678901234567890123456789080000000
SELECT "count(distinct 38)_GB(8)_test2", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
count(distinct 38)_GB(8)_test2 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_GB(8)_test2 3 3 4
count(distinct 38)_GB(8)_test2 4 3 4
SELECT "sum(19)_test3", sum(d1),sum(d2),sum(d3) FROM cs3;
sum(19)_test3 sum(d1) sum(d2) sum(d3)
sum(19)_test3 23456793605 24691357.8024800000 0.4938271560492400000
SELECT "avg(19)_test3", avg(d1),avg(d2),avg(d3) FROM cs3;
avg(19)_test3 avg(d1) avg(d2) avg(d3)
avg(19)_test3 2932099200.6250 3086419.72531000000000 0.06172839450615500000000
SELECT "count(19)_test3", count(d1),count(d2),count(d3) FROM cs3;
count(19)_test3 count(d1) count(d2) count(d3)
count(19)_test3 8 8 8
SELECT "min(19)_test3", min(d1),min(d2),min(d3) FROM cs3;
min(19)_test3 min(d1) min(d2) min(d3)
min(19)_test3 -1234567899 -5678.0000000000 -0.1234567890123400000
SELECT "max(19)_test3", max(d1),max(d2),max(d3) FROM cs3;
max(19)_test3 max(d1) max(d2) max(d3)
max(19)_test3 12345678901 12345678.9012800000 0.1234567890123400000
SELECT "group_concat(38)_test3", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d1),group_concat(d3 ORDER BY d1) FROM cs3;
group_concat(38)_test3 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d1) group_concat(d3 ORDER BY d1)
group_concat(38)_test3 -1234567899,0,0,1234,1234,1234,12345678901,12345678901 -5678.0000000000,0.0000000000,0.0000000000,5678.0000000000,-5678.0000000000,5678.0000000000,12345678.9012000000,12345678.9012800000 0.1234567890123000000,0.0000000000000000000,0.0000000000000000000,0.1234567890123400000,0.1234567890123400000,-0.1234567890123400000,0.1234567890123000000,0.1234567890123000000
SELECT "count(distinct 38)_test3", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs3;
count(distinct 38)_test3 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_test3 4 5 4
SELECT "sum(19)_test3", sum(d1),sum(d2),sum(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
sum(19)_test3 sum(d1) sum(d2) sum(d3)
sum(19)_test3 23456793605 24691357.8024800000 0.4938271560492400000
SELECT "avg(19)_test3", avg(d1),avg(d2),avg(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
avg(19)_test3 avg(d1) avg(d2) avg(d3)
avg(19)_test3 2932099200.6250 3086419.72531000000000 0.06172839450615500000000
SELECT "count(19)_test3", count(d1),count(d2),count(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
count(19)_test3 count(d1) count(d2) count(d3)
count(19)_test3 8 8 8
SELECT "min(19)_test3", min(d1),min(d2),min(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
min(19)_test3 min(d1) min(d2) min(d3)
min(19)_test3 -1234567899 -5678.0000000000 -0.1234567890123400000
SELECT "max(19)_test3", max(d1),max(d2),max(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
max(19)_test3 max(d1) max(d2) max(d3)
max(19)_test3 12345678901 12345678.9012800000 0.1234567890123400000
SELECT "group_concat(38)_test3", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
group_concat(38)_test3 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_test3 -1234567899,0,0,1234,1234,1234,12345678901,12345678901 -5678.0000000000,-5678.0000000000,0.0000000000,0.0000000000,5678.0000000000,5678.0000000000,12345678.9012000000,12345678.9012800000 -0.1234567890123400000,0.0000000000000000000,0.0000000000000000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123400000,0.1234567890123400000
SELECT "count(distinct 38)_test3", count(distinct d1),count(distinct d2),count(distinct d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
count(distinct 38)_test3 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_test3 4 5 4
SELECT "sum(38)_GB(38)_test3" ,d4,d5,sum(d1),sum(d2),sum(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
sum(38)_GB(38)_test3 d4 d5 sum(d1) sum(d2) sum(d3)
sum(38)_GB(38)_test3 2 1 12345681369 12345678.9012800000 0.1234567890123000000
sum(38)_GB(38)_test3 3 2 11111112236 12345678.9012000000 0.3703703670369400000
SELECT "avg(38)_GB(38)_test3" ,d4,d5,avg(d1),avg(d2),avg(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
avg(38)_GB(38)_test3 d4 d5 avg(d1) avg(d2) avg(d3)
avg(38)_GB(38)_test3 2 1 3086420342.2500 3086419.72532000000000 0.03086419725307500000000
avg(38)_GB(38)_test3 3 2 2777778059.0000 3086419.72530000000000 0.09259259175923500000000
SELECT "count(38)_GB(38)_test3" ,d4,d5,count(d1),count(d2),count(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
count(38)_GB(38)_test3 d4 d5 count(d1) count(d2) count(d3)
count(38)_GB(38)_test3 2 1 4 4 4
count(38)_GB(38)_test3 3 2 4 4 4
SELECT "min(38)_GB(38)_test3" ,d4,d5,min(d1),min(d2),min(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
min(38)_GB(38)_test3 d4 d5 min(d1) min(d2) min(d3)
min(38)_GB(38)_test3 2 1 0 -5678.0000000000 -0.1234567890123400000
min(38)_GB(38)_test3 3 2 -1234567899 -5678.0000000000 0.0000000000000000000
SELECT "max(38)_GB(38)_test3" ,d4,d5,max(d1),max(d2),max(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
max(38)_GB(38)_test3 d4 d5 max(d1) max(d2) max(d3)
max(38)_GB(38)_test3 2 1 12345678901 12345678.9012800000 0.1234567890123400000
max(38)_GB(38)_test3 3 2 12345678901 12345678.9012000000 0.1234567890123400000
SELECT "group_concat(38)_GB(38)_test3", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
group_concat(38)_GB(38)_test3 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_GB(38)_test3 -1234567899,0,1234,12345678901 -5678.0000000000,0.0000000000,5678.0000000000,12345678.9012000000 0.0000000000000000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123400000
group_concat(38)_GB(38)_test3 0,1234,1234,12345678901 -5678.0000000000,0.0000000000,5678.0000000000,12345678.9012800000 -0.1234567890123400000,0.0000000000000000000,0.1234567890123000000,0.1234567890123400000
SELECT "count(distinct 38)_GB(38)_test3", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
count(distinct 38)_GB(38)_test3 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_GB(38)_test3 3 4 4
count(distinct 38)_GB(38)_test3 4 4 3
SELECT "sum(38)_GB(8)_test3" ,i1,sum(d1),sum(d2),sum(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
sum(38)_GB(8)_test3 i1 sum(d1) sum(d2) sum(d3)
sum(38)_GB(8)_test3 1 12345681369 12345678.9012800000 0.1234567890123000000
sum(38)_GB(8)_test3 2 11111112236 12345678.9012000000 0.3703703670369400000
SELECT "avg(38)_GB(8)_test3" ,i1,avg(d1),avg(d2),avg(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
avg(38)_GB(8)_test3 i1 avg(d1) avg(d2) avg(d3)
avg(38)_GB(8)_test3 1 3086420342.2500 3086419.72532000000000 0.03086419725307500000000
avg(38)_GB(8)_test3 2 2777778059.0000 3086419.72530000000000 0.09259259175923500000000
SELECT "count(38)_GB(8)_test3" ,i1,count(d1),count(d2),count(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
count(38)_GB(8)_test3 i1 count(d1) count(d2) count(d3)
count(38)_GB(8)_test3 1 4 4 4
count(38)_GB(8)_test3 2 4 4 4
SELECT "min(38)_GB(8)_test3" ,i1,min(d1),min(d2),min(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
min(38)_GB(8)_test3 i1 min(d1) min(d2) min(d3)
min(38)_GB(8)_test3 1 0 -5678.0000000000 -0.1234567890123400000
min(38)_GB(8)_test3 2 -1234567899 -5678.0000000000 0.0000000000000000000
SELECT "max(38)_GB(8)_test3" ,i1,max(d1),max(d2),max(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
max(38)_GB(8)_test3 i1 max(d1) max(d2) max(d3)
max(38)_GB(8)_test3 1 12345678901 12345678.9012800000 0.1234567890123400000
max(38)_GB(8)_test3 2 12345678901 12345678.9012000000 0.1234567890123400000
SELECT "group_concat(38)_GB(8)_test3", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
group_concat(38)_GB(8)_test3 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_GB(8)_test3 -1234567899,0,1234,12345678901 -5678.0000000000,0.0000000000,5678.0000000000,12345678.9012000000 0.0000000000000000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123400000
group_concat(38)_GB(8)_test3 0,1234,1234,12345678901 -5678.0000000000,0.0000000000,5678.0000000000,12345678.9012800000 -0.1234567890123400000,0.0000000000000000000,0.1234567890123000000,0.1234567890123400000
SELECT "count(distinct 38)_GB(8)_test3", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
count(distinct 38)_GB(8)_test3 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_GB(8)_test3 3 4 4
count(distinct 38)_GB(8)_test3 4 4 3
SELECT "sum(19)_test4", sum(d1),sum(d2),sum(d3) FROM cs4;
sum(19)_test4 sum(d1) sum(d2) sum(d3)
sum(19)_test4 25925929403 24714069.8025100000 0.7407407340739200000
SELECT "avg(19)_test4", avg(d1),avg(d2),avg(d3) FROM cs4;
avg(19)_test4 avg(d1) avg(d2) avg(d3)
avg(19)_test4 3240741175.3750 3089258.72531375000000 0.09259259175924000000000
SELECT "count(19)_test4", count(d1),count(d2),count(d3) FROM cs4;
count(19)_test4 count(d1) count(d2) count(d3)
count(19)_test4 8 8 8
SELECT "min(19)_test4", min(d1),min(d2),min(d3) FROM cs4;
min(19)_test4 min(d1) min(d2) min(d3)
min(19)_test4 0 0.0000000000 0.0000000000000000000
SELECT "max(19)_test4", max(d1),max(d2),max(d3) FROM cs4;
max(19)_test4 max(d1) max(d2) max(d3)
max(19)_test4 12345678901 12345678.9012800000 0.1234567890123400000
SELECT "group_concat(38)_test4", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs4;
group_concat(38)_test4 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_test4 0,0,1234,1234,1234,1234567899,12345678901,12345678901 0.0000000000,0.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,12345678.9012300000,12345678.9012800000 0.0000000000000000000,0.0000000000000000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123400000,0.1234567890123400000,0.1234567890123400000
SELECT "count(distinct 38)_test4", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs4;
count(distinct 38)_test4 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_test4 4 4 3
SELECT "sum(19)_test4", sum(d1),sum(d2),sum(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
sum(19)_test4 sum(d1) sum(d2) sum(d3)
sum(19)_test4 25925929403 24714069.8025100000 0.7407407340739200000
SELECT "avg(19)_test4", avg(d1),avg(d2),avg(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
avg(19)_test4 avg(d1) avg(d2) avg(d3)
avg(19)_test4 3240741175.3750 3089258.72531375000000 0.09259259175924000000000
SELECT "count(19)_test4", count(d1),count(d2),count(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
count(19)_test4 count(d1) count(d2) count(d3)
count(19)_test4 8 8 8
SELECT "min(19)_test4", min(d1),min(d2),min(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
min(19)_test4 min(d1) min(d2) min(d3)
min(19)_test4 0 0.0000000000 0.0000000000000000000
SELECT "max(19)_test4", max(d1),max(d2),max(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
max(19)_test4 max(d1) max(d2) max(d3)
max(19)_test4 12345678901 12345678.9012800000 0.1234567890123400000
SELECT "group_concat(38)_test4", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
group_concat(38)_test4 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_test4 0,0,1234,1234,1234,1234567899,12345678901,12345678901 0.0000000000,0.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,5678.0000000000,12345678.9012300000,12345678.9012800000 0.0000000000000000000,0.0000000000000000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123400000,0.1234567890123400000,0.1234567890123400000
SELECT "count(distinct 38)_test4", count(distinct d1),count(distinct d2),count(distinct d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
count(distinct 38)_test4 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_test4 4 4 3
SELECT "sum(38)_GB(38)_test4" ,d4,d5,sum(d1),sum(d2),sum(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
sum(38)_GB(38)_test4 d4 d5 sum(d1) sum(d2) sum(d3)
sum(38)_GB(38)_test4 2 1 12345681369 12357034.9012800000 0.3703703670369800000
sum(38)_GB(38)_test4 3 2 13580248034 12357034.9012300000 0.3703703670369400000
SELECT "avg(38)_GB(38)_test4" ,d4,d5,avg(d1),avg(d2),avg(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
avg(38)_GB(38)_test4 d4 d5 avg(d1) avg(d2) avg(d3)
avg(38)_GB(38)_test4 2 1 3086420342.2500 3089258.72532000000000 0.09259259175924500000000
avg(38)_GB(38)_test4 3 2 3395062008.5000 3089258.72530750000000 0.09259259175923500000000
SELECT "count(38)_GB(38)_test4" ,d4,d5,count(d1),count(d2),count(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
count(38)_GB(38)_test4 d4 d5 count(d1) count(d2) count(d3)
count(38)_GB(38)_test4 2 1 4 4 4
count(38)_GB(38)_test4 3 2 4 4 4
SELECT "min(38)_GB(38)_test4" ,d4,d5,min(d1),min(d2),min(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
min(38)_GB(38)_test4 d4 d5 min(d1) min(d2) min(d3)
min(38)_GB(38)_test4 2 1 0 0.0000000000 0.0000000000000000000
min(38)_GB(38)_test4 3 2 0 0.0000000000 0.0000000000000000000
SELECT "max(38)_GB(38)_test4" ,d4,d5,max(d1),max(d2),max(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
max(38)_GB(38)_test4 d4 d5 max(d1) max(d2) max(d3)
max(38)_GB(38)_test4 2 1 12345678901 12345678.9012800000 0.1234567890123400000
max(38)_GB(38)_test4 3 2 12345678901 12345678.9012300000 0.1234567890123400000
SELECT "group_concat(38)_GB(38)_test4", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
group_concat(38)_GB(38)_test4 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_GB(38)_test4 0,1234,1234,12345678901 0.0000000000,5678.0000000000,5678.0000000000,12345678.9012800000 0.0000000000000000000,0.1234567890123000000,0.1234567890123400000,0.1234567890123400000
group_concat(38)_GB(38)_test4 0,1234,1234567899,12345678901 0.0000000000,5678.0000000000,5678.0000000000,12345678.9012300000 0.0000000000000000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123400000
SELECT "count(distinct 38)_GB(38)_test4", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
count(distinct 38)_GB(38)_test4 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_GB(38)_test4 3 3 3
count(distinct 38)_GB(38)_test4 4 3 3
SELECT "sum(38)_GB(38)_test4" ,i1,sum(d1),sum(d2),sum(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
sum(38)_GB(38)_test4 i1 sum(d1) sum(d2) sum(d3)
sum(38)_GB(38)_test4 1 12345681369 12357034.9012800000 0.3703703670369800000
sum(38)_GB(38)_test4 2 13580248034 12357034.9012300000 0.3703703670369400000
SELECT "avg(38)_GB(38)_test4" ,i1,avg(d1),avg(d2),avg(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
avg(38)_GB(38)_test4 i1 avg(d1) avg(d2) avg(d3)
avg(38)_GB(38)_test4 1 3086420342.2500 3089258.72532000000000 0.09259259175924500000000
avg(38)_GB(38)_test4 2 3395062008.5000 3089258.72530750000000 0.09259259175923500000000
SELECT "count(38)_GB(38)_test4" ,i1,count(d1),count(d2),count(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
count(38)_GB(38)_test4 i1 count(d1) count(d2) count(d3)
count(38)_GB(38)_test4 1 4 4 4
count(38)_GB(38)_test4 2 4 4 4
SELECT "min(38)_GB(38)_test4" ,i1,min(d1),min(d2),min(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
min(38)_GB(38)_test4 i1 min(d1) min(d2) min(d3)
min(38)_GB(38)_test4 1 0 0.0000000000 0.0000000000000000000
min(38)_GB(38)_test4 2 0 0.0000000000 0.0000000000000000000
SELECT "max(38)_GB(38)_test4" ,i1,max(d1),max(d2),max(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
max(38)_GB(38)_test4 i1 max(d1) max(d2) max(d3)
max(38)_GB(38)_test4 1 12345678901 12345678.9012800000 0.1234567890123400000
max(38)_GB(38)_test4 2 12345678901 12345678.9012300000 0.1234567890123400000
SELECT "group_concat(38)_GB(8)_test4", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
group_concat(38)_GB(8)_test4 group_concat(d1 ORDER BY d1) group_concat(d2 ORDER BY d2) group_concat(d3 ORDER BY d3)
group_concat(38)_GB(8)_test4 0,1234,1234,12345678901 0.0000000000,5678.0000000000,5678.0000000000,12345678.9012800000 0.0000000000000000000,0.1234567890123000000,0.1234567890123400000,0.1234567890123400000
group_concat(38)_GB(8)_test4 0,1234,1234567899,12345678901 0.0000000000,5678.0000000000,5678.0000000000,12345678.9012300000 0.0000000000000000000,0.1234567890123000000,0.1234567890123000000,0.1234567890123400000
SELECT "count(distinct 38)_GB(8)_test4", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
count(distinct 38)_GB(8)_test4 count(distinct d1) count(distinct d2) count(distinct d3)
count(distinct 38)_GB(8)_test4 3 3 3
count(distinct 38)_GB(8)_test4 4 3 3
SELECT sum(d1), "sum(38)_test1", sum(d2),sum(d3) FROM cs1;
sum(d1) sum(38)_test1 sum(d2) sum(d3)
24691234345680012331639 sum(38)_test1 2469135780246935707281.8024691356 0.12345678901234567290123327780032580000
INSERT INTO cs5 VALUES (1),(0.1),(0.05),(0.05),(0.05),(0.05),(0.2),(0.154),(0.1),(0.05),(0.05);
SELECT avg(d) FROM cs5;
avg(d)
0.16854545454545454545455
UPDATE cs5 SET d=-d;
SELECT avg(d) FROM cs5;
avg(d)
-0.16854545454545454545455
DROP TABLE cs1;
DROP TABLE cs2;
DROP TABLE cs3;
DROP TABLE cs4;
DROP TABLE cs5;

View File

@ -0,0 +1,559 @@
DROP DATABASE IF EXISTS mcol641_arithmetic_db;
CREATE DATABASE mcol641_arithmetic_db;
USE mcol641_arithmetic_db;
DROP PROCEDURE IF EXISTS deleteproc;
CREATE PROCEDURE deleteproc ()
BEGIN
DELETE FROM cs1;
DELETE FROM cs2;
DELETE FROM cs3;
DELETE FROM cs4;
DELETE FROM cs5;
DELETE FROM cs6;
DELETE FROM cs7;
DELETE FROM cs8;
DELETE FROM cs9;
DELETE FROM cs10;
DELETE FROM cs11;
DELETE FROM cs12;
END//
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(19), d2 DECIMAL(19)) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(38), d2 DECIMAL(19)) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(38), d2 DECIMAL(10)) ENGINE=columnstore;
CREATE TABLE cs5 (d1 DECIMAL(38,10), d2 DECIMAL(38,10)) ENGINE=columnstore;
CREATE TABLE cs6 (d1 DECIMAL(19,10), d2 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs7 (d1 DECIMAL(38,10), d2 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs8 (d1 DECIMAL(38,10), d2 DECIMAL(10,10)) ENGINE=columnstore;
CREATE TABLE cs9 (d1 DECIMAL(38,38), d2 DECIMAL(38,38)) ENGINE=columnstore;
CREATE TABLE cs10 (d1 DECIMAL(19,19), d2 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs11 (d1 DECIMAL(38,38), d2 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs12 (d1 DECIMAL(38,38), d2 DECIMAL(10,10)) ENGINE=columnstore;
SET columnstore_decimal_overflow_check=off;
INSERT INTO cs1 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, 12345678901234567890123456789012345678), (12345678901234567890123456789012345678, -22345678901234567890123456789012345678);
INSERT INTO cs1 VALUES (99999999999999999999999999999999999998, 1), (-99999999999999999999999999999999999998, -1);
SELECT "add_test_38_0_38_0", d1 + d2 FROM cs1;
add_test_38_0_38_0 d1 + d2
add_test_38_0_38_0 6912
add_test_38_0_38_0 -4444
add_test_38_0_38_0 24691357802469135780246913578024691356
add_test_38_0_38_0 -10000000000000000000000000000000000000
add_test_38_0_38_0 99999999999999999999999999999999999999
add_test_38_0_38_0 -99999999999999999999999999999999999999
INSERT INTO cs2 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs2 VALUES (1234567890123456789, 1234567890123456789), (1234567890123456789, -2234567890123456789);
INSERT INTO cs2 VALUES (9999999999999999998, 1), (-9999999999999999998, -1);
SELECT "add_test_19_0_19_0", d1 + d2 FROM cs2;
add_test_19_0_19_0 d1 + d2
add_test_19_0_19_0 6912
add_test_19_0_19_0 -4444
add_test_19_0_19_0 2469135780246913578
add_test_19_0_19_0 -1000000000000000000
add_test_19_0_19_0 9999999999999999999
add_test_19_0_19_0 -9999999999999999999
INSERT INTO cs3 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs3 VALUES (12345678901234567890123456789012345678, 1234567890123456789), (12345678901234567890123456789012345678, -2234567890123456789);
INSERT INTO cs3 VALUES (99999999999999999999999999999999999998, 1), (-99999999999999999999999999999999999998, -1);
SELECT "add_test_38_0_19_0", d1 + d2 FROM cs3;
add_test_38_0_19_0 d1 + d2
add_test_38_0_19_0 6912
add_test_38_0_19_0 -4444
add_test_38_0_19_0 12345678901234567891358024679135802467
add_test_38_0_19_0 12345678901234567887888888898888888889
add_test_38_0_19_0 99999999999999999999999999999999999999
add_test_38_0_19_0 -99999999999999999999999999999999999999
INSERT INTO cs4 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs4 VALUES (12345678901234567890123456789012345678, 1234567890), (12345678901234567890123456789012345678, -2234567890);
INSERT INTO cs4 VALUES (99999999999999999999999999999999999998, 1), (-99999999999999999999999999999999999998, -1);
SELECT "add_test_38_0_10_0", d1 + d2 FROM cs4;
add_test_38_0_10_0 d1 + d2
add_test_38_0_10_0 6912
add_test_38_0_10_0 -4444
add_test_38_0_10_0 12345678901234567890123456790246913568
add_test_38_0_10_0 12345678901234567890123456786777777788
add_test_38_0_10_0 99999999999999999999999999999999999999
add_test_38_0_10_0 -99999999999999999999999999999999999999
INSERT INTO cs5 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs5 VALUES (1234567890123456789012345678.9012345678, 1234567890123456789012345678.9012345678), (1234567890123456789012345678.9012345678, -2234567890123456789012345678.9012345678);
INSERT INTO cs5 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "add_test_38_10_38_10", d1 + d2 FROM cs5;
add_test_38_10_38_10 d1 + d2
add_test_38_10_38_10 69.1200000000
add_test_38_10_38_10 -44.4400000000
add_test_38_10_38_10 2469135780246913578024691357.8024691356
add_test_38_10_38_10 -1000000000000000000000000000.0000000000
add_test_38_10_38_10 9999999999999999999999999999.9999999999
add_test_38_10_38_10 -9999999999999999999999999999.9999999999
INSERT INTO cs6 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs6 VALUES (123456789.0123456789, 123456789.0123456789), (123456789.0123456789, -223456789.0123456789);
INSERT INTO cs6 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "add_test_19_10_19_10", d1 + d2 FROM cs6;
add_test_19_10_19_10 d1 + d2
add_test_19_10_19_10 69.1200000000
add_test_19_10_19_10 -44.4400000000
add_test_19_10_19_10 246913578.0246913578
add_test_19_10_19_10 -100000000.0000000000
add_test_19_10_19_10 999999999.9999999999
add_test_19_10_19_10 -999999999.9999999999
INSERT INTO cs7 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs7 VALUES (1234567890123456789012345678.9012345678, 123456789.0123456789), (1234567890123456789012345678.9012345678, -223456789.0123456789);
INSERT INTO cs7 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "add_test_38_10_19_10", d1 + d2 FROM cs7;
add_test_38_10_19_10 d1 + d2
add_test_38_10_19_10 69.1200000000
add_test_38_10_19_10 -44.4400000000
add_test_38_10_19_10 1234567890123456789135802467.9135802467
add_test_38_10_19_10 1234567890123456788788888889.8888888889
add_test_38_10_19_10 9999999999999999999999999999.9999999999
add_test_38_10_19_10 -9999999999999999999999999999.9999999999
INSERT INTO cs8 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs8 VALUES (1234567890123456789012345678.9012345678, 0.1234567890), (1234567890123456789012345678.9012345678, -0.2234567890);
INSERT INTO cs8 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "add_test_38_10_10_10", d1 + d2 FROM cs8;
add_test_38_10_10_10 d1 + d2
add_test_38_10_10_10 0.6912000000
add_test_38_10_10_10 -0.4444000000
add_test_38_10_10_10 1234567890123456789012345679.0246913568
add_test_38_10_10_10 1234567890123456789012345678.6777777788
add_test_38_10_10_10 9999999999999999999999999999.9999999999
add_test_38_10_10_10 -9999999999999999999999999999.9999999999
INSERT INTO cs9 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs9 VALUES (0.12345678901234567890123456789012345678, 0.12345678901234567890123456789012345678), (0.12345678901234567890123456789012345678, -0.22345678901234567890123456789012345678);
INSERT INTO cs9 VALUES (0.99999999999999999999999999999999999998, 0.00000000000000000000000000000000000001), (-0.99999999999999999999999999999999999998, -0.00000000000000000000000000000000000001);
SELECT "add_test_38_38_38_38", d1 + d2 FROM cs9;
add_test_38_38_38_38 d1 + d2
add_test_38_38_38_38 0.69120000000000000000000000000000000000
add_test_38_38_38_38 -0.44440000000000000000000000000000000000
add_test_38_38_38_38 0.24691357802469135780246913578024691356
add_test_38_38_38_38 -0.10000000000000000000000000000000000000
add_test_38_38_38_38 0.99999999999999999999999999999999999999
add_test_38_38_38_38 -0.99999999999999999999999999999999999999
INSERT INTO cs10 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs10 VALUES (0.1234567890123456789, 0.1234567890123456789), (0.1234567890123456789, -0.2234567890123456789);
INSERT INTO cs10 VALUES (0.9999999999999999998, 0.0000000000000000001), (-0.9999999999999999998, -0.0000000000000000001);
SELECT "add_test_19_19_19_19", d1 + d2 FROM cs10;
add_test_19_19_19_19 d1 + d2
add_test_19_19_19_19 0.6912000000000000000
add_test_19_19_19_19 -0.4444000000000000000
add_test_19_19_19_19 0.2469135780246913578
add_test_19_19_19_19 -0.1000000000000000000
add_test_19_19_19_19 0.9999999999999999999
add_test_19_19_19_19 -0.9999999999999999999
INSERT INTO cs11 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs11 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789), (0.12345678901234567890123456789012345678, -0.2234567890123456789);
INSERT INTO cs11 VALUES (0.99999999999999999999999999999999999998, 0.0000000000000000001), (-0.99999999999999999999999999999999999998, -0.0000000000000000001);
SELECT "add_test_38_38_19_19", d1 + d2 FROM cs11;
add_test_38_38_19_19 d1 + d2
add_test_38_38_19_19 0.69120000000000000000000000000000000000
add_test_38_38_19_19 -0.44440000000000000000000000000000000000
add_test_38_38_19_19 0.24691357802469135780123456789012345678
add_test_38_38_19_19 -0.09999999999999999999876543210987654322
add_test_38_38_19_19 1.00000000000000000009999999999999999998
add_test_38_38_19_19 -1.00000000000000000009999999999999999998
INSERT INTO cs12 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs12 VALUES (0.12345678901234567890123456789012345678, 0.1234567890), (0.12345678901234567890123456789012345678, -0.2234567890);
INSERT INTO cs12 VALUES (0.99999999999999999999999999999999999998, 0.0000000001), (-0.99999999999999999999999999999999999998, -0.0000000001);
SELECT "add_test_38_38_10_10", d1 + d2 FROM cs12;
add_test_38_38_10_10 d1 + d2
add_test_38_38_10_10 0.69120000000000000000000000000000000000
add_test_38_38_10_10 -0.44440000000000000000000000000000000000
add_test_38_38_10_10 0.24691357801234567890123456789012345678
add_test_38_38_10_10 -0.09999999998765432109876543210987654322
add_test_38_38_10_10 1.00000000009999999999999999999999999998
add_test_38_38_10_10 -1.00000000009999999999999999999999999998
SET columnstore_decimal_overflow_check=off;
CALL deleteproc();
INSERT INTO cs1 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, -12345678901234567890123456789012345678), (-12345678901234567890123456789012345678, -22345678901234567890123456789012345678);
INSERT INTO cs1 VALUES (99999999999999999999999999999999999999, 1), (-99999999999999999999999999999999999999, -1);
SELECT "subtract_test_38_0_38_0", d1 - d2 FROM cs1;
subtract_test_38_0_38_0 d1 - d2
subtract_test_38_0_38_0 -4444
subtract_test_38_0_38_0 6912
subtract_test_38_0_38_0 24691357802469135780246913578024691356
subtract_test_38_0_38_0 10000000000000000000000000000000000000
subtract_test_38_0_38_0 99999999999999999999999999999999999998
subtract_test_38_0_38_0 -99999999999999999999999999999999999998
INSERT INTO cs2 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs2 VALUES (1234567890123456789, -1234567890123456789), (-1234567890123456789, -2234567890123456789);
INSERT INTO cs2 VALUES (9999999999999999999, 1), (-9999999999999999999, -1);
SELECT "subtract_test_19_0_19_0", d1 - d2 FROM cs2;
subtract_test_19_0_19_0 d1 - d2
subtract_test_19_0_19_0 -4444
subtract_test_19_0_19_0 6912
subtract_test_19_0_19_0 2469135780246913578
subtract_test_19_0_19_0 1000000000000000000
subtract_test_19_0_19_0 9999999999999999998
subtract_test_19_0_19_0 -9999999999999999998
INSERT INTO cs3 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs3 VALUES (12345678901234567890123456789012345678, 1234567890123456789), (-12345678901234567890123456789012345678, -2234567890123456789);
INSERT INTO cs3 VALUES (99999999999999999999999999999999999999, 1), (-99999999999999999999999999999999999999, -1);
SELECT "subtract_test_38_0_19_0", d1 - d2 FROM cs3;
subtract_test_38_0_19_0 d1 - d2
subtract_test_38_0_19_0 -4444
subtract_test_38_0_19_0 6912
subtract_test_38_0_19_0 12345678901234567888888888898888888889
subtract_test_38_0_19_0 -12345678901234567887888888898888888889
subtract_test_38_0_19_0 99999999999999999999999999999999999998
subtract_test_38_0_19_0 -99999999999999999999999999999999999998
INSERT INTO cs4 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs4 VALUES (12345678901234567890123456789012345678, 1234567890), (-12345678901234567890123456789012345678, -2234567890);
INSERT INTO cs4 VALUES (99999999999999999999999999999999999999, 1), (-99999999999999999999999999999999999999, -1);
SELECT "subtract_test_38_0_10_0", d1 - d2 FROM cs4;
subtract_test_38_0_10_0 d1 - d2
subtract_test_38_0_10_0 -4444
subtract_test_38_0_10_0 6912
subtract_test_38_0_10_0 12345678901234567890123456787777777788
subtract_test_38_0_10_0 -12345678901234567890123456786777777788
subtract_test_38_0_10_0 99999999999999999999999999999999999998
subtract_test_38_0_10_0 -99999999999999999999999999999999999998
INSERT INTO cs5 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs5 VALUES (1234567890123456789012345678.9012345678, -1234567890123456789012345678.9012345678), (-1234567890123456789012345678.9012345678, -2234567890123456789012345678.9012345678);
INSERT INTO cs5 VALUES (9999999999999999999999999999.9999999999, 0.0000000001), (-9999999999999999999999999999.9999999999, -0.0000000001);
SELECT "subtract_test_38_10_38_10", d1 - d2 FROM cs5;
subtract_test_38_10_38_10 d1 - d2
subtract_test_38_10_38_10 -44.4400000000
subtract_test_38_10_38_10 69.1200000000
subtract_test_38_10_38_10 2469135780246913578024691357.8024691356
subtract_test_38_10_38_10 1000000000000000000000000000.0000000000
subtract_test_38_10_38_10 9999999999999999999999999999.9999999998
subtract_test_38_10_38_10 -9999999999999999999999999999.9999999998
INSERT INTO cs6 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs6 VALUES (123456789.0123456789, -123456789.0123456789), (-123456789.0123456789, -223456789.0123456789);
INSERT INTO cs6 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "subtract_test_19_10_19_10", d1 - d2 FROM cs6;
subtract_test_19_10_19_10 d1 - d2
subtract_test_19_10_19_10 -44.4400000000
subtract_test_19_10_19_10 69.1200000000
subtract_test_19_10_19_10 246913578.0246913578
subtract_test_19_10_19_10 100000000.0000000000
subtract_test_19_10_19_10 999999999.9999999997
subtract_test_19_10_19_10 -999999999.9999999997
INSERT INTO cs7 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs7 VALUES (1234567890123456789012345678.9012345678, 123456789.0123456789), (-1234567890123456789012345678.9012345678, -223456789.0123456789);
INSERT INTO cs7 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "subtract_test_38_10_19_10", d1 - d2 FROM cs7;
subtract_test_38_10_19_10 d1 - d2
subtract_test_38_10_19_10 -44.4400000000
subtract_test_38_10_19_10 69.1200000000
subtract_test_38_10_19_10 1234567890123456788888888889.8888888889
subtract_test_38_10_19_10 -1234567890123456788788888889.8888888889
subtract_test_38_10_19_10 9999999999999999999999999999.9999999997
subtract_test_38_10_19_10 -9999999999999999999999999999.9999999997
INSERT INTO cs8 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs8 VALUES (1234567890123456789012345678.9012345678, 0.1234567890), (-1234567890123456789012345678.9012345678, -0.2234567890);
INSERT INTO cs8 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "subtract_test_38_10_10_10", d1 - d2 FROM cs8;
subtract_test_38_10_10_10 d1 - d2
subtract_test_38_10_10_10 -0.4444000000
subtract_test_38_10_10_10 0.6912000000
subtract_test_38_10_10_10 1234567890123456789012345678.7777777788
subtract_test_38_10_10_10 -1234567890123456789012345678.6777777788
subtract_test_38_10_10_10 9999999999999999999999999999.9999999997
subtract_test_38_10_10_10 -9999999999999999999999999999.9999999997
INSERT INTO cs9 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs9 VALUES (-0.12345678901234567890123456789012345678, 0.12345678901234567890123456789012345678), (-0.12345678901234567890123456789012345678, -0.22345678901234567890123456789012345678);
INSERT INTO cs9 VALUES (0.99999999999999999999999999999999999998, 0.00000000000000000000000000000000000001), (-0.99999999999999999999999999999999999998, -0.00000000000000000000000000000000000001);
SELECT "subtract_test_38_38_38_38", d1 - d2 FROM cs9;
subtract_test_38_38_38_38 d1 - d2
subtract_test_38_38_38_38 -0.44440000000000000000000000000000000000
subtract_test_38_38_38_38 0.69120000000000000000000000000000000000
subtract_test_38_38_38_38 -0.24691357802469135780246913578024691356
subtract_test_38_38_38_38 0.10000000000000000000000000000000000000
subtract_test_38_38_38_38 0.99999999999999999999999999999999999997
subtract_test_38_38_38_38 -0.99999999999999999999999999999999999997
INSERT INTO cs10 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs10 VALUES (0.1234567890123456789, 0.1234567890123456788), (0.1234567890123456789, -0.2234567890123456789);
INSERT INTO cs10 VALUES (0.9999999999999999998, 0.0000000100000000001), (-0.9999999999999999998, -0.0000000100000000001);
SELECT "subtract_test_19_19_19_19", d1 - d2 FROM cs10;
subtract_test_19_19_19_19 d1 - d2
subtract_test_19_19_19_19 -0.4444000000000000000
subtract_test_19_19_19_19 0.6912000000000000000
subtract_test_19_19_19_19 0.0000000000000000001
subtract_test_19_19_19_19 0.3469135780246913578
subtract_test_19_19_19_19 0.9999999899999999997
subtract_test_19_19_19_19 -0.9999999899999999997
INSERT INTO cs11 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs11 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789), (-0.12345678901234567890123456789012345678, -0.2234567890123456789);
INSERT INTO cs11 VALUES (0.99999999999999999999999999999999999998, 0.0000000000000000001), (-0.99999999999999999999999999999999999998, -0.0000000000000000001);
SELECT "subtract_test_38_38_19_19", d1 - d2 FROM cs11;
subtract_test_38_38_19_19 d1 - d2
subtract_test_38_38_19_19 -0.44440000000000000000000000000000000000
subtract_test_38_38_19_19 0.69120000000000000000000000000000000000
subtract_test_38_38_19_19 0.00000000000000000000123456789012345678
subtract_test_38_38_19_19 0.09999999999999999999876543210987654322
subtract_test_38_38_19_19 0.99999999999999999989999999999999999998
subtract_test_38_38_19_19 -0.99999999999999999989999999999999999998
INSERT INTO cs12 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs12 VALUES (0.12345678901234567890123456789012345678, 0.1234567890), (0.12345678901234567890123456789012345678, -0.2234567890);
INSERT INTO cs12 VALUES (0.99999999999999999999999999999999999998, 0.0000000001), (-0.99999999999999999999999999999999999998, -0.0000000001);
SELECT "subtract_test_38_38_10_10", d1 - d2 FROM cs12;
subtract_test_38_38_10_10 d1 - d2
subtract_test_38_38_10_10 -0.44440000000000000000000000000000000000
subtract_test_38_38_10_10 0.69120000000000000000000000000000000000
subtract_test_38_38_10_10 0.00000000001234567890123456789012345678
subtract_test_38_38_10_10 0.34691357801234567890123456789012345678
subtract_test_38_38_10_10 0.99999999989999999999999999999999999998
subtract_test_38_38_10_10 -0.99999999989999999999999999999999999998
SET columnstore_decimal_overflow_check=off;
CALL deleteproc();
INSERT INTO cs1 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs1 VALUES (1234567890123456789, 1234567890123456789), (1234567890123456789, -2234567890123456789);
INSERT INTO cs1 VALUES (9999999999999999999999999999, 10000000000), (-9999999999999999999999999999, -10000000000);
SELECT "multiply_test_38_0_38_0", d1 * d2 FROM cs1;
multiply_test_38_0_38_0 d1 * d2
multiply_test_38_0_38_0 7006652
multiply_test_38_0_38_0 -7006652
multiply_test_38_0_38_0 1524157875323883675019051998750190521
multiply_test_38_0_38_0 -2758725765447340464019051998750190521
multiply_test_38_0_38_0 99999999999999999999999999990000000000
multiply_test_38_0_38_0 99999999999999999999999999990000000000
INSERT INTO cs2 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs2 VALUES (1234567890123456789, 1234567890123456789), (1234567890123456789, -2234567890123456789);
INSERT INTO cs2 VALUES (9999999999999999998, 1), (-9999999999999999998, -1);
SELECT "multiply_test_19_0_19_0", d1 * d2 FROM cs2;
multiply_test_19_0_19_0 d1 * d2
multiply_test_19_0_19_0 7006652
multiply_test_19_0_19_0 -7006652
multiply_test_19_0_19_0 1524157875323883675019051998750190521
multiply_test_19_0_19_0 -2758725765447340464019051998750190521
multiply_test_19_0_19_0 9999999999999999998
multiply_test_19_0_19_0 9999999999999999998
INSERT INTO cs3 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs3 VALUES (1234567890123456789, 1234567890123456789), (1234567890123456789, -2234567890123456789);
INSERT INTO cs3 VALUES (99999999999999999999999999999999999998, 1), (-99999999999999999999999999999999999998, -1);
SELECT "multiply_test_38_0_19_0", d1 * d2 FROM cs3;
multiply_test_38_0_19_0 d1 * d2
multiply_test_38_0_19_0 7006652
multiply_test_38_0_19_0 -7006652
multiply_test_38_0_19_0 1524157875323883675019051998750190521
multiply_test_38_0_19_0 -2758725765447340464019051998750190521
multiply_test_38_0_19_0 99999999999999999999999999999999999998
multiply_test_38_0_19_0 99999999999999999999999999999999999998
INSERT INTO cs4 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs4 VALUES (1234567890123456789012345678, 1234567890), (1234567890123456789012345678, -2234567890);
INSERT INTO cs4 VALUES (99999999999999999999999999998, 1000000000), (-99999999999999999999999999998, -1000000000);
SELECT "multiply_test_38_0_10_0", d1 * d2 FROM cs4;
multiply_test_38_0_10_0 d1 * d2
multiply_test_38_0_10_0 7006652
multiply_test_38_0_10_0 -7006652
multiply_test_38_0_10_0 1524157875171467887517146787639079420
multiply_test_38_0_10_0 -2758725765294924676529492465639079420
multiply_test_38_0_10_0 99999999999999999999999999998000000000
multiply_test_38_0_10_0 99999999999999999999999999998000000000
INSERT INTO cs5 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs5 VALUES (123456789.0123456789, 123456789.0123456789), (123456789.0123456789, -223456789.0123456789);
INSERT INTO cs5 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "multiply_test_38_10_38_10", d1 * d2 FROM cs5;
multiply_test_38_10_38_10 d1 * d2
multiply_test_38_10_38_10 700.66520000000000000000
multiply_test_38_10_38_10 -700.66520000000000000000
multiply_test_38_10_38_10 15241578753238836.75019051998750190521
multiply_test_38_10_38_10 -27587257654473404.64019051998750190521
multiply_test_38_10_38_10 0.09999999999999999998
multiply_test_38_10_38_10 0.09999999999999999998
INSERT INTO cs6 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs6 VALUES (123456789.0123456789, 123456789.0123456789), (123456789.0123456789, -223456789.0123456789);
INSERT INTO cs6 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "multiply_test_19_10_19_10", d1 * d2 FROM cs6;
multiply_test_19_10_19_10 d1 * d2
multiply_test_19_10_19_10 700.66520000000000000000
multiply_test_19_10_19_10 -700.66520000000000000000
multiply_test_19_10_19_10 15241578753238836.75019051998750190521
multiply_test_19_10_19_10 -27587257654473404.64019051998750190521
multiply_test_19_10_19_10 0.09999999999999999998
multiply_test_19_10_19_10 0.09999999999999999998
INSERT INTO cs7 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs7 VALUES (123456789.0123456789, 123456789.0123456789), (123456789.0123456789, -223456789.0123456789);
INSERT INTO cs7 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "multiply_test_38_10_19_10", d1 * d2 FROM cs7;
multiply_test_38_10_19_10 d1 * d2
multiply_test_38_10_19_10 700.66520000000000000000
multiply_test_38_10_19_10 -700.66520000000000000000
multiply_test_38_10_19_10 15241578753238836.75019051998750190521
multiply_test_38_10_19_10 -27587257654473404.64019051998750190521
multiply_test_38_10_19_10 0.09999999999999999998
multiply_test_38_10_19_10 0.09999999999999999998
INSERT INTO cs8 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs8 VALUES (123456789012345678.9012345678, 0.1234567890), (123456789012345678.9012345678, -0.2234567890);
INSERT INTO cs8 VALUES (999999999999999999.9999999998, 0.0000000001), (-999999999999999999.9999999998, -0.0000000001);
SELECT "multiply_test_38_10_10_10", d1 * d2 FROM cs8;
multiply_test_38_10_10_10 d1 * d2
multiply_test_38_10_10_10 0.07006652000000000000
multiply_test_38_10_10_10 -0.07006652000000000000
multiply_test_38_10_10_10 15241578751714678.87517146787639079420
multiply_test_38_10_10_10 -27587257652949246.76529492465639079420
multiply_test_38_10_10_10 99999999.99999999999999999998
multiply_test_38_10_10_10 99999999.99999999999999999998
INSERT INTO cs9 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs9 VALUES (0.1234567890123456789, 0.1234567890123456789), (0.1234567890123456789, -0.2234567890123456789);
INSERT INTO cs9 VALUES (0.9999999999999999998, 0.0000000000000000001), (-0.9999999999999999998, -0.0000000000000000001);
SELECT "multiply_test_38_38_38_38", d1 * d2 FROM cs9;
multiply_test_38_38_38_38 d1 * d2
multiply_test_38_38_38_38 0.07006652000000000000000000000000000000
multiply_test_38_38_38_38 -0.07006652000000000000000000000000000000
multiply_test_38_38_38_38 0.01524157875323883675019051998750190521
multiply_test_38_38_38_38 -0.02758725765447340464019051998750190521
multiply_test_38_38_38_38 0.00000000000000000009999999999999999998
multiply_test_38_38_38_38 0.00000000000000000009999999999999999998
INSERT INTO cs10 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs10 VALUES (0.1234567890123456789, 0.1234567890123456789), (0.1234567890123456789, -0.2234567890123456789);
INSERT INTO cs10 VALUES (0.9999999999999999998, 0.0000000000000000001), (-0.9999999999999999998, -0.0000000000000000001);
SELECT "multiply_test_19_19_19_19", d1 * d2 FROM cs10;
multiply_test_19_19_19_19 d1 * d2
multiply_test_19_19_19_19 0.07006652000000000000000000000000000000
multiply_test_19_19_19_19 -0.07006652000000000000000000000000000000
multiply_test_19_19_19_19 0.01524157875323883675019051998750190521
multiply_test_19_19_19_19 -0.02758725765447340464019051998750190521
multiply_test_19_19_19_19 0.00000000000000000009999999999999999998
multiply_test_19_19_19_19 0.00000000000000000009999999999999999998
INSERT INTO cs11 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs11 VALUES (0.1234567890123456789, 0.123456789), (0.1234567890123456789, -0.223456789);
INSERT INTO cs11 VALUES (0.9999999999999999998, 0.000000001), (-0.9999999999999999998, -0.000000001);
SELECT "multiply_test_38_38_19_19", d1 * d2 FROM cs11;
multiply_test_38_38_19_19 d1 * d2
multiply_test_38_38_19_19 0.07006652000000000000000000000000000000
multiply_test_38_38_19_19 -0.07006652000000000000000000000000000000
multiply_test_38_38_19_19 0.01524157875171467887501905210000000000
multiply_test_38_38_19_19 -0.02758725765294924676501905210000000000
multiply_test_38_38_19_19 0.00000000099999999999999999980000000000
multiply_test_38_38_19_19 0.00000000099999999999999999980000000000
INSERT INTO cs12 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs12 VALUES (0.1234567890123456789012345678, 0.12345), (0.1234567890123456789012345678, -0.22345);
INSERT INTO cs12 VALUES (0.9999999999999999999999999998, 0.00001), (-0.9999999999999999999999999998, -0.00001);
SELECT "multiply_test_38_38_10_10", d1 * d2 FROM cs12;
multiply_test_38_38_10_10 d1 * d2
multiply_test_38_38_10_10 0.07006652000000000000000000000000000000
multiply_test_38_38_10_10 -0.07006652000000000000000000000000000000
multiply_test_38_38_10_10 0.01524074060357407406035740739491000000
multiply_test_38_38_10_10 -0.02758641950480864195048086417491000000
multiply_test_38_38_10_10 0.00000999999999999999999999999999800000
multiply_test_38_38_10_10 0.00000999999999999999999999999999800000
SET columnstore_decimal_overflow_check=off;
CALL deleteproc();
INSERT INTO cs1 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, 4567890123456789), (12345678901234567890123456789012345678, -223456789012345678901234567890123456);
INSERT INTO cs1 VALUES (44444444444444444444444444444444444444, 10000000000), (-44444444444444444444444444444444, 1000);
SELECT "divide_test_38_0_38_0", d1 / d2, d2 / d1 FROM cs1;
divide_test_38_0_38_0 d1 / d2 d2 / d1
divide_test_38_0_38_0 0.2173 4.6013
divide_test_38_0_38_0 -0.2173 -4.6013
divide_test_38_0_38_0 2702709252536020344499.6001 0.0000
divide_test_38_0_38_0 -55.2486 -0.0181
divide_test_38_0_38_0 4444444444444444444444444444.4444 0.0000
divide_test_38_0_38_0 -44444444444444444444444444444.4440 0.0000
INSERT INTO cs2 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs2 VALUES (1234567890123456789, 4567890123456789), (1234567890123456789, -223456789012345678);
INSERT INTO cs2 VALUES (4444444444444444444, 10000000000), (-44444444444444444, -1000);
SELECT "divide_test_19_0_19_0", d1 / d2, d2 / d1 FROM cs2;
divide_test_19_0_19_0 d1 / d2 d2 / d1
divide_test_19_0_19_0 0.2173 4.6013
divide_test_19_0_19_0 -0.2173 -4.6013
divide_test_19_0_19_0 270.2709 0.0037
divide_test_19_0_19_0 -5.5249 -0.1810
divide_test_19_0_19_0 444444444.4444 0.0000
divide_test_19_0_19_0 44444444444444.4440 0.0000
INSERT INTO cs3 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs3 VALUES (12345678901234567890123456789012345678, 4567890123456789), (12345678901234567890123456789012345678, -2234567890123456);
INSERT INTO cs3 VALUES (4444444444444444444, 10000000000), (-44444444444444444, -1000);
SELECT "divide_test_38_0_19_0", d1 / d2, d2 / d1 FROM cs3;
divide_test_38_0_19_0 d1 / d2 d2 / d1
divide_test_38_0_19_0 0.2173 4.6013
divide_test_38_0_19_0 -0.2173 -4.6013
divide_test_38_0_19_0 2702709252536020344499.6001 0.0000
divide_test_38_0_19_0 -5524861856200972504265.3815 0.0000
divide_test_38_0_19_0 444444444.4444 0.0000
divide_test_38_0_19_0 44444444444444.4440 0.0000
INSERT INTO cs4 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs4 VALUES (12345678901234567890123456789012345678, 4567890123), (12345678901234567890123456789012345678, -2234567890);
INSERT INTO cs4 VALUES (4444444444444444444, 1000000000), (-44444444444444444, -1000);
SELECT "divide_test_38_0_10_0", d1 / d2, d2 / d1 FROM cs4;
divide_test_38_0_10_0 d1 / d2 d2 / d1
divide_test_38_0_10_0 0.2173 4.6013
divide_test_38_0_10_0 -0.2173 -4.6013
divide_test_38_0_10_0 2702709252806291262475591904.4711 0.0000
divide_test_38_0_10_0 -5524861856506211538788135360.2608 0.0000
divide_test_38_0_10_0 4444444444.4444 0.0000
divide_test_38_0_10_0 44444444444444.4440 0.0000
INSERT INTO cs5 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs5 VALUES (1234567890123456789012345678.9012345678, 4567890123456789.0123456789), (1234567890123456789012345678.9012345678, -22345678901234567890123456.7890123456);
INSERT INTO cs5 VALUES (4444444444444444444444444444.4444444444, 10000000000.0), (-4444444444444444444444.4444444444, 1000.0);
SELECT "divide_test_38_10_38_10", d1 / d2, d2 / d1 FROM cs5;
divide_test_38_10_38_10 d1 / d2 d2 / d1
divide_test_38_10_38_10 0.21733004579077 4.60129659643436
divide_test_38_10_38_10 -0.21733004579077 -4.60129659643436
divide_test_38_10_38_10 270270925253.60203371949628 0.00000000000370
divide_test_38_10_38_10 -55.24861856200971 -0.01810000007290
divide_test_38_10_38_10 444444444444444444.44444444444444 0.00000000000000
divide_test_38_10_38_10 -4444444444444444444.44444444444440 0.00000000000000
INSERT INTO cs6 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs6 VALUES (123456789.0123456789, 456789.0123456789), (123456789.0123456789, -22345678.9012345678);
INSERT INTO cs6 VALUES (444444444.4444444444, 100000000.0), (-4444444.4444444444, -1000.0);
SELECT "divide_test_19_10_19_10", d1 / d2, d2 / d1 FROM cs6;
divide_test_19_10_19_10 d1 / d2 d2 / d1
divide_test_19_10_19_10 0.21733004579077 4.60129659643436
divide_test_19_10_19_10 -0.21733004579077 -4.60129659643436
divide_test_19_10_19_10 270.27092525360203 0.00369999103330
divide_test_19_10_19_10 -5.52486185620097 -0.18100000072900
divide_test_19_10_19_10 4.44444444444444 0.22500000000000
divide_test_19_10_19_10 4444.44444444444440 0.00022500000000
INSERT INTO cs7 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs7 VALUES (1234567890123456789012345678.9012345678, 456789012.0123456789), (1234567890123456789012345678.9012345678, -223456789.7890123456);
INSERT INTO cs7 VALUES (444444444.4444444444, 100000000.0), (-4444444.4444444444, -1000.0);
SELECT "divide_test_38_10_19_10", d1 / d2, d2 / d1 FROM cs7;
divide_test_38_10_19_10 d1 / d2 d2 / d1
divide_test_38_10_19_10 0.21733004579077 4.60129659643436
divide_test_38_10_19_10 -0.21733004579077 -4.60129659643436
divide_test_38_10_19_10 2702709254508271771.64263351022682 0.00000000000000
divide_test_38_10_19_10 -5524861836998260061.30618678500406 0.00000000000000
divide_test_38_10_19_10 4.44444444444444 0.22500000000000
divide_test_38_10_19_10 4444.44444444444440 0.00022500000000
INSERT INTO cs8 VALUES (12.34, 0.5678), (12.34, -0.5678);
INSERT INTO cs8 VALUES (1234567890123456789.9012345678, 0.4567890123), (1234567890123456789.9012345678, -0.2234567890);
INSERT INTO cs8 VALUES (444444444.4444444444, 0.10000000), (-4444444.4444444444, -0.10000);
SELECT "divide_test_38_10_10_10", d1 / d2, d2 / d1 FROM cs8;
divide_test_38_10_10_10 d1 / d2 d2 / d1
divide_test_38_10_10_10 21.73300457907714 0.04601296596434
divide_test_38_10_10_10 -21.73300457907714 -0.04601296596434
divide_test_38_10_10_10 2702709252806291264.42154258402682 0.00000000000000
divide_test_38_10_10_10 -5524861856506211542.76603593279057 0.00000000000000
divide_test_38_10_10_10 4444444444.44444444400000 0.00000000022500
divide_test_38_10_10_10 44444444.44444444400000 0.00000002250000
INSERT INTO cs9 VALUES (0.0000000000000000000000000001234, 0.000000000000000000005678), (0.000000000000000000000000001234, -0.000000000000000000005678);
INSERT INTO cs9 VALUES (0.00000000000000000004567890123456789, 0.12345678901234567890123456789012345678), (-0.000000000000000002234567890123456789, 0.12345678901234567890123456789012345678);
INSERT INTO cs9 VALUES (0.000000000000010000000000, 0.44444444444444444444444444444444444444), (0.00000000000001000, -0.44444444444444444444444444444444);
SELECT "divide_test_38_38_38_38", d1 / d2 FROM cs9;
divide_test_38_38_38_38 d1 / d2
divide_test_38_38_38_38 0.00000002173300457907713983797111659035
divide_test_38_38_38_38 -0.00000021733004579077139837971116590349
divide_test_38_38_38_38 0.00000000000000000036999910332999183930
divide_test_38_38_38_38 -0.00000000000000001810000007290000066329
divide_test_38_38_38_38 0.00000000000002250000000000000000000000
divide_test_38_38_38_38 -0.00000000000002250000000000000000000000
INSERT INTO cs10 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs10 VALUES (0.1234567890123456789, 0.4567890123456789), (0.1234567890123456789, -0.223456789012345678);
INSERT INTO cs10 VALUES (0.4444444444444444444, 0.10000000000), (-0.44444444444444444, -0.1000);
SELECT "divide_test_19_19_19_19", d1 / d2, d2 / d1 FROM cs10;
divide_test_19_19_19_19 d1 / d2 d2 / d1
divide_test_19_19_19_19 0.21733004579077139837971 4.60129659643435980551053
divide_test_19_19_19_19 -0.21733004579077139837971 -4.60129659643435980551053
divide_test_19_19_19_19 0.27027092525360203444726 3.69999103329991839306626
divide_test_19_19_19_19 -0.55248618562009705756976 -1.81000000729000005905710
divide_test_19_19_19_19 4.44444444444444444400000 0.22500000000000000002250
divide_test_19_19_19_19 4.44444444444444440000000 0.22500000000000000225000
INSERT INTO cs12 VALUES (0.0000000000000000000000000000001234, 0.5678), (0.0000000000000000000000000000001234, -0.5678);
INSERT INTO cs12 VALUES (0.00000000001234567890123456789012345678, 0.4567890123), (0.00000000001234567890123456789012345678, -0.2234567890);
INSERT INTO cs12 VALUES (0.000000000000000000004444444444444444444, 0.1000000000), (-0.0000000000000000000044444444444444444, -0.1000);
Warnings:
Note 1265 Data truncated for column 'd1' at row 1
SELECT "divide_test_38_38_10_10", d1 / d2 FROM cs12;
divide_test_38_38_10_10 d1 / d2
divide_test_38_38_10_10 0.00000000000000000000000000000021733005
divide_test_38_38_10_10 -0.00000000000000000000000000000021733005
divide_test_38_38_10_10 0.00000000002702709252806291262475591902
divide_test_38_38_10_10 -0.00000000005524861856506211538788135356
divide_test_38_38_10_10 0.00000000000000000004444444444444444440
divide_test_38_38_10_10 0.00000000000000000004444444444444444400
DROP PROCEDURE IF EXISTS deleteproc;
DROP DATABASE mcol641_arithmetic_db;

View File

@ -0,0 +1,74 @@
DROP DATABASE IF EXISTS test_mcol641_create;
CREATE DATABASE test_mcol641_create;
USE test_mcol641_create;
DROP TABLE IF EXISTS cs1;
DROP TABLE IF EXISTS cs2;
DROP TABLE IF EXISTS cs3;
DROP TABLE IF EXISTS cs4;
CREATE TABLE cs1(d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 DECIMAL(19), d5 DECIMAL(19,19),d6 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs2(d1 DECIMAL(38) SIGNED, d2 DECIMAL(38,10) SIGNED, d3 DECIMAL(38,38) SIGNED) ENGINE=columnstore;
CREATE TABLE cs3(d1 DECIMAL(38) UNSIGNED ZEROFILL, d2 DECIMAL(38,10) UNSIGNED ZEROFILL, d3 DECIMAL(38,38) UNSIGNED ZEROFILL) ENGINE=columnstore;
Warnings:
Warning 1618 ZEROFILL is ignored in ColumnStore
CREATE TABLE cs4(d1 DECIMAL(18), d2 DECIMAL(18,10), d3 DECIMAL(18,18)) ENGINE=columnstore;
SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE,COLUMN_LENGTH,COLUMN_POSITION,COLUMN_DEFAULT,NUMERIC_PRECISION,NUMERIC_SCALE FROM information_schema.columnstore_columns WHERE table_name = 'cs1' OR table_name = 'cs2' OR table_name = 'cs3' OR table_name = 'cs4' ORDER BY table_name,column_name ASC;
TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE COLUMN_LENGTH COLUMN_POSITION COLUMN_DEFAULT NUMERIC_PRECISION NUMERIC_SCALE
test_mcol641_create cs1 d1 decimal 16 0 NULL 38 0
test_mcol641_create cs1 d2 decimal 16 1 NULL 38 10
test_mcol641_create cs1 d3 decimal 16 2 NULL 38 38
test_mcol641_create cs1 d4 decimal 16 3 NULL 19 0
test_mcol641_create cs1 d5 decimal 16 4 NULL 19 19
test_mcol641_create cs1 d6 decimal 16 5 NULL 19 10
test_mcol641_create cs2 d1 decimal 16 0 NULL 38 0
test_mcol641_create cs2 d2 decimal 16 1 NULL 38 10
test_mcol641_create cs2 d3 decimal 16 2 NULL 38 38
test_mcol641_create cs3 d1 udecimal 16 0 NULL 38 0
test_mcol641_create cs3 d2 udecimal 16 1 NULL 38 10
test_mcol641_create cs3 d3 udecimal 16 2 NULL 38 38
test_mcol641_create cs4 d1 decimal 8 0 NULL 18 0
test_mcol641_create cs4 d2 decimal 8 1 NULL 18 10
test_mcol641_create cs4 d3 decimal 8 2 NULL 18 18
ALTER TABLE cs1 DROP COLUMN d4;
ALTER TABLE cs1 ADD COLUMN d7 DECIMAL(38,37);
ALTER TABLE cs2 ADD COLUMN d4 DECIMAL(30,30) SIGNED;
ALTER TABLE cs3 ADD COLUMN d5 DECIMAL(20,18) UNSIGNED;
Warnings:
Warning 1618 ZEROFILL is ignored in ColumnStore
ALTER TABLE cs1 RENAME COLUMN d7 TO d17;
ERROR 42000: The storage engine for the table doesn't support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
ALTER TABLE cs2 ADD COLUMN (d5 DECIMAL(38,5), d6 DECIMAL(35,15));
ERROR 42000: The storage engine for the table doesn't support Multiple actions in alter table statement is currently not supported by Columnstore.
ALTER TABLE cs3 MODIFY d1 DECIMAL(38) SIGNED;
ERROR HY000: Internal error: CAL0001: Alter table Failed: Altertable: Error in the action type
SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE,COLUMN_LENGTH,COLUMN_POSITION,COLUMN_DEFAULT,NUMERIC_PRECISION,NUMERIC_SCALE FROM information_schema.columnstore_columns WHERE table_schema = 'test_mcol641_create' ORDER BY table_name,column_name ASC;
TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE COLUMN_LENGTH COLUMN_POSITION COLUMN_DEFAULT NUMERIC_PRECISION NUMERIC_SCALE
test_mcol641_create cs1 d1 decimal 16 0 NULL 38 0
test_mcol641_create cs1 d2 decimal 16 1 NULL 38 10
test_mcol641_create cs1 d3 decimal 16 2 NULL 38 38
test_mcol641_create cs1 d5 decimal 16 3 NULL 19 19
test_mcol641_create cs1 d6 decimal 16 4 NULL 19 10
test_mcol641_create cs1 d7 decimal 16 5 NULL 38 37
test_mcol641_create cs2 d1 decimal 16 0 NULL 38 0
test_mcol641_create cs2 d2 decimal 16 1 NULL 38 10
test_mcol641_create cs2 d3 decimal 16 2 NULL 38 38
test_mcol641_create cs2 d4 decimal 16 3 NULL 30 30
test_mcol641_create cs3 d1 udecimal 16 0 NULL 38 0
test_mcol641_create cs3 d2 udecimal 16 1 NULL 38 10
test_mcol641_create cs3 d3 udecimal 16 2 NULL 38 38
test_mcol641_create cs3 d5 udecimal 16 3 NULL 20 18
test_mcol641_create cs4 d1 decimal 8 0 NULL 18 0
test_mcol641_create cs4 d2 decimal 8 1 NULL 18 10
test_mcol641_create cs4 d3 decimal 8 2 NULL 18 18
CREATE TABLE cs5(d1 DECIMAL(39)) ENGINE=columnstore;
ERROR HY000: Internal error: CAL0009: (3)Create table failed due to Syntax error: The maximum precision (total number of digits) that can be specified is 38
CREATE TABLE cs5(d1 DECIMAL(38,39)) ENGINE=columnstore;
ERROR 42000: Too big scale 39 specified for 'd1'. Maximum is 38
ALTER TABLE cs1 ADD COLUMN d10 DECIMAL(40);
ERROR HY000: Internal error: CAL0001: Alter table Failed: AlterTableProcessor::addColumn Syntax error: The maximum precision (total number of digits) that can be specified is 38
ALTER TABLE cs1 ADD COLUMN d11 DECIMAL(38,40);
ERROR 42000: Too big scale 40 specified for 'd11'. Maximum is 38
DROP TABLE cs1;
DROP TABLE cs2;
DROP TABLE cs3;
DROP TABLE cs4;
DROP DATABASE test_mcol641_create;

View File

@ -0,0 +1,730 @@
DROP DATABASE IF EXISTS mcol641_delete_db;
CREATE DATABASE mcol641_delete_db;
USE mcol641_delete_db;
DROP PROCEDURE IF EXISTS signedinsertproc;
Warnings:
Note 1305 PROCEDURE mcol641_delete_db.signedinsertproc does not exist
DROP PROCEDURE IF EXISTS signeddeleteproc;
Warnings:
Note 1305 PROCEDURE mcol641_delete_db.signeddeleteproc does not exist
DROP PROCEDURE IF EXISTS unsignedinsertproc;
Warnings:
Note 1305 PROCEDURE mcol641_delete_db.unsignedinsertproc does not exist
DROP PROCEDURE IF EXISTS unsigneddeleteproc;
Warnings:
Note 1305 PROCEDURE mcol641_delete_db.unsigneddeleteproc does not exist
CREATE PROCEDURE signedinsertproc ()
BEGIN
INSERT INTO cs1 VALUES (125, 125);
INSERT INTO cs1 VALUES (-125, -125);
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999998);
INSERT INTO cs1 values (99999999999999999999999999999999999999, 9999999999999999999);
INSERT INTO cs1 values (-99999999999999999999999999999999999998, -9999999999999999998);
INSERT INTO cs1 values (-99999999999999999999999999999999999999, -9999999999999999999);
INSERT INTO cs1 VALUES (0, 0);
INSERT INTO cs1 VALUES (NULL, NULL);
INSERT INTO cs2 VALUES (1.25, 1.25);
INSERT INTO cs2 VALUES (-1.25, -1.25);
INSERT INTO cs2 values (9999999999999999999999999999.9999999998, 999999999.9999999998);
INSERT INTO cs2 values (9999999999999999999999999999.9999999999, 999999999.9999999999);
INSERT INTO cs2 values (-9999999999999999999999999999.9999999998, -999999999.9999999998);
INSERT INTO cs2 values (-9999999999999999999999999999.9999999999, -999999999.9999999999);
INSERT INTO cs2 VALUES (1.1234567891, 1.1234567891);
INSERT INTO cs2 VALUES (1.9999999999, 1.9999999999);
INSERT INTO cs2 VALUES (-1.1234567891, -1.1234567891);
INSERT INTO cs2 VALUES (-1.9999999999, -1.9999999999);
INSERT INTO cs2 VALUES (1.0000000009, 1.0000000009);
INSERT INTO cs2 VALUES (-1.0000000009, -1.0000000009);
INSERT INTO cs2 VALUES (0, 0);
INSERT INTO cs2 VALUES (NULL, NULL);
INSERT INTO cs3 VALUES (0.125, 0.125);
INSERT INTO cs3 VALUES (-0.125, -0.125);
INSERT INTO cs3 values (0.99999999999999999999999999999999999998, 0.9999999999999999998);
INSERT INTO cs3 values (0.99999999999999999999999999999999999999, 0.9999999999999999999);
INSERT INTO cs3 values (-0.99999999999999999999999999999999999998, -0.9999999999999999998);
INSERT INTO cs3 values (-0.99999999999999999999999999999999999999, -0.9999999999999999999);
INSERT INTO cs3 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789);
INSERT INTO cs3 VALUES (0.19999999999999999999999999999999999999, 0.1999999999999999999);
INSERT INTO cs3 VALUES (-0.12345678901234567890123456789012345678, -0.1234567890123456789);
INSERT INTO cs3 VALUES (-0.19999999999999999999999999999999999999, -0.1999999999999999999);
INSERT INTO cs3 VALUES (0.00000000000000000000000000000000000009, 0.0000000000000000009);
INSERT INTO cs3 VALUES (-0.00000000000000000000000000000000000009, -0.0000000000000000009);
INSERT INTO cs3 VALUES (0, 0);
INSERT INTO cs3 VALUES (NULL, NULL);
END//
CREATE PROCEDURE unsignedinsertproc ()
BEGIN
INSERT INTO cs4 VALUES (125, 125);
INSERT INTO cs4 values (99999999999999999999999999999999999998, 9999999999999999998);
INSERT INTO cs4 values (99999999999999999999999999999999999999, 9999999999999999999);
INSERT INTO cs4 VALUES (0, 0);
INSERT INTO cs4 VALUES (NULL, NULL);
INSERT INTO cs5 VALUES (1.25, 1.25);
INSERT INTO cs5 values (9999999999999999999999999999.9999999998, 999999999.9999999998);
INSERT INTO cs5 values (9999999999999999999999999999.9999999999, 999999999.9999999999);
INSERT INTO cs5 VALUES (1.1234567891, 1.1234567891);
INSERT INTO cs5 VALUES (1.9999999999, 1.9999999999);
INSERT INTO cs5 VALUES (1.0000000009, 1.0000000009);
INSERT INTO cs5 VALUES (0, 0);
INSERT INTO cs5 VALUES (NULL, NULL);
INSERT INTO cs6 VALUES (0.125, 0.125);
INSERT INTO cs6 values (0.99999999999999999999999999999999999998, 0.9999999999999999998);
INSERT INTO cs6 values (0.99999999999999999999999999999999999999, 0.9999999999999999999);
INSERT INTO cs6 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789);
INSERT INTO cs6 VALUES (0.19999999999999999999999999999999999999, 0.1999999999999999999);
INSERT INTO cs6 VALUES (0.00000000000000000000000000000000000009, 0.0000000000000000009);
INSERT INTO cs6 VALUES (0, 0);
INSERT INTO cs6 VALUES (NULL, NULL);
END//
CREATE PROCEDURE signeddeleteproc ()
BEGIN
DELETE FROM cs1;
DELETE FROM cs2;
DELETE FROM cs3;
END//
CREATE PROCEDURE unsigneddeleteproc ()
BEGIN
DELETE FROM cs4;
DELETE FROM cs5;
DELETE FROM cs6;
END//
DROP TABLE IF EXISTS cs1;
Warnings:
Note 1051 Unknown table 'mcol641_delete_db.cs1'
DROP TABLE IF EXISTS cs2;
Warnings:
Note 1051 Unknown table 'mcol641_delete_db.cs2'
DROP TABLE IF EXISTS cs3;
Warnings:
Note 1051 Unknown table 'mcol641_delete_db.cs3'
DROP TABLE IF EXISTS cs4;
Warnings:
Note 1051 Unknown table 'mcol641_delete_db.cs4'
DROP TABLE IF EXISTS cs5;
Warnings:
Note 1051 Unknown table 'mcol641_delete_db.cs5'
DROP TABLE IF EXISTS cs6;
Warnings:
Note 1051 Unknown table 'mcol641_delete_db.cs6'
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(19)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38,10), d2 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(38,38), d2 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(19) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs5 (d1 DECIMAL(38,10) UNSIGNED, d2 DECIMAL(19,10) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs6 (d1 DECIMAL(38,38) UNSIGNED, d2 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
CALL signedinsertproc();
DELETE FROM cs1;
DELETE FROM cs2;
DELETE FROM cs3;
SELECT "signedtest1", d1, d2 FROM cs1;
signedtest1 d1 d2
SELECT "signedtest1", d1, d2 FROM cs2;
signedtest1 d1 d2
SELECT "signedtest1", d1, d2 FROM cs3;
signedtest1 d1 d2
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1=-99999999999999999999999999999999999998;
DELETE FROM cs1 WHERE d2=9999999999999999999;
DELETE FROM cs2 WHERE d1=-9999999999999999999999999999.9999999998;
DELETE FROM cs2 WHERE d2=999999999.9999999999;
DELETE FROM cs3 WHERE d1=-0.99999999999999999999999999999999999998;
DELETE FROM cs3 WHERE d2=0.9999999999999999999;
SELECT "signedtest2", d1, d2 FROM cs1;
signedtest2 d1 d2
signedtest2 125 125
signedtest2 -125 -125
signedtest2 99999999999999999999999999999999999998 9999999999999999998
signedtest2 -99999999999999999999999999999999999999 -9999999999999999999
signedtest2 0 0
signedtest2 NULL NULL
SELECT "signedtest2", d1, d2 FROM cs2;
signedtest2 d1 d2
signedtest2 1.2500000000 1.2500000000
signedtest2 -1.2500000000 -1.2500000000
signedtest2 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest2 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest2 1.1234567891 1.1234567891
signedtest2 1.9999999999 1.9999999999
signedtest2 -1.1234567891 -1.1234567891
signedtest2 -1.9999999999 -1.9999999999
signedtest2 1.0000000009 1.0000000009
signedtest2 -1.0000000009 -1.0000000009
signedtest2 0.0000000000 0.0000000000
signedtest2 NULL NULL
SELECT "signedtest2", d1, d2 FROM cs3;
signedtest2 d1 d2
signedtest2 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest2 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest2 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest2 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest2 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest2 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest2 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest2 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest2 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest2 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest2 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest2 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 in (-99999999999999999999999999999999999998, 99999999999999999999999999999999999999);
DELETE FROM cs2 WHERE d1 in (-9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999999);
DELETE FROM cs3 WHERE d1 in (-0.99999999999999999999999999999999999998, 0.99999999999999999999999999999999999999);
SELECT "signedtest3", d1, d2 FROM cs1;
signedtest3 d1 d2
signedtest3 125 125
signedtest3 -125 -125
signedtest3 99999999999999999999999999999999999998 9999999999999999998
signedtest3 -99999999999999999999999999999999999999 -9999999999999999999
signedtest3 0 0
signedtest3 NULL NULL
SELECT "signedtest3", d1, d2 FROM cs2;
signedtest3 d1 d2
signedtest3 1.2500000000 1.2500000000
signedtest3 -1.2500000000 -1.2500000000
signedtest3 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest3 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest3 1.1234567891 1.1234567891
signedtest3 1.9999999999 1.9999999999
signedtest3 -1.1234567891 -1.1234567891
signedtest3 -1.9999999999 -1.9999999999
signedtest3 1.0000000009 1.0000000009
signedtest3 -1.0000000009 -1.0000000009
signedtest3 0.0000000000 0.0000000000
signedtest3 NULL NULL
SELECT "signedtest3", d1, d2 FROM cs3;
signedtest3 d1 d2
signedtest3 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest3 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest3 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest3 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest3 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest3 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest3 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest3 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest3 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest3 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest3 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest3 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 <= -99999999999999999999999999999999999998 OR d2 >= 9999999999999999998;
DELETE FROM cs2 WHERE d1 <= -9999999999999999999999999999.9999999998 OR d2 >= 999999999.9999999998;
DELETE FROM cs3 WHERE d1 <= -0.99999999999999999999999999999999999998 OR d2 >= 0.9999999999999999998;
SELECT "signedtest4a", d1, d2 FROM cs1;
signedtest4a d1 d2
signedtest4a 125 125
signedtest4a -125 -125
signedtest4a 0 0
signedtest4a NULL NULL
SELECT "signedtest4a", d1, d2 FROM cs2;
signedtest4a d1 d2
signedtest4a 1.2500000000 1.2500000000
signedtest4a -1.2500000000 -1.2500000000
signedtest4a 1.1234567891 1.1234567891
signedtest4a 1.9999999999 1.9999999999
signedtest4a -1.1234567891 -1.1234567891
signedtest4a -1.9999999999 -1.9999999999
signedtest4a 1.0000000009 1.0000000009
signedtest4a -1.0000000009 -1.0000000009
signedtest4a 0.0000000000 0.0000000000
signedtest4a NULL NULL
SELECT "signedtest4a", d1, d2 FROM cs3;
signedtest4a d1 d2
signedtest4a 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest4a -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest4a 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4a 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest4a -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest4a -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest4a 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest4a -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest4a 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest4a NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 < -99999999999999999999999999999999999998 OR d2 > 9999999999999999998;
DELETE FROM cs2 WHERE d1 < -9999999999999999999999999999.9999999998 OR d2 > 999999999.9999999998;
DELETE FROM cs3 WHERE d1 < -0.99999999999999999999999999999999999998 OR d2 > 0.9999999999999999998;
SELECT "signedtest4", d1, d2 FROM cs1;
signedtest4 d1 d2
signedtest4 125 125
signedtest4 -125 -125
signedtest4 99999999999999999999999999999999999998 9999999999999999998
signedtest4 -99999999999999999999999999999999999998 -9999999999999999998
signedtest4 0 0
signedtest4 NULL NULL
SELECT "signedtest4", d1, d2 FROM cs2;
signedtest4 d1 d2
signedtest4 1.2500000000 1.2500000000
signedtest4 -1.2500000000 -1.2500000000
signedtest4 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest4 -9999999999999999999999999999.9999999998 -999999999.9999999998
signedtest4 1.1234567891 1.1234567891
signedtest4 1.9999999999 1.9999999999
signedtest4 -1.1234567891 -1.1234567891
signedtest4 -1.9999999999 -1.9999999999
signedtest4 1.0000000009 1.0000000009
signedtest4 -1.0000000009 -1.0000000009
signedtest4 0.0000000000 0.0000000000
signedtest4 NULL NULL
SELECT "signedtest4", d1, d2 FROM cs3;
signedtest4 d1 d2
signedtest4 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest4 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest4 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest4 -0.99999999999999999999999999999999999998 -0.9999999999999999998
signedtest4 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest4 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest4 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest4 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest4 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest4 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest4 NULL NULL
DELETE FROM cs1 WHERE d1 is NULL;
DELETE FROM cs2 WHERE d1 is NULL;
DELETE FROM cs3 WHERE d1 is NULL;
SELECT "signedtest5", d1, d2 FROM cs1;
signedtest5 d1 d2
signedtest5 125 125
signedtest5 -125 -125
signedtest5 99999999999999999999999999999999999998 9999999999999999998
signedtest5 -99999999999999999999999999999999999998 -9999999999999999998
signedtest5 0 0
SELECT "signedtest5", d1, d2 FROM cs2;
signedtest5 d1 d2
signedtest5 1.2500000000 1.2500000000
signedtest5 -1.2500000000 -1.2500000000
signedtest5 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest5 -9999999999999999999999999999.9999999998 -999999999.9999999998
signedtest5 1.1234567891 1.1234567891
signedtest5 1.9999999999 1.9999999999
signedtest5 -1.1234567891 -1.1234567891
signedtest5 -1.9999999999 -1.9999999999
signedtest5 1.0000000009 1.0000000009
signedtest5 -1.0000000009 -1.0000000009
signedtest5 0.0000000000 0.0000000000
SELECT "signedtest5", d1, d2 FROM cs3;
signedtest5 d1 d2
signedtest5 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest5 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest5 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest5 -0.99999999999999999999999999999999999998 -0.9999999999999999998
signedtest5 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest5 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest5 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest5 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest5 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest5 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest5 0.00000000000000000000000000000000000000 0.0000000000000000000
DELETE FROM cs1 WHERE d1 != 125;
DELETE FROM cs2 WHERE d1 != 1.25;
DELETE FROM cs3 WHERE d1 != 0.125;
SELECT "signedtest6", d1, d2 FROM cs1;
signedtest6 d1 d2
signedtest6 125 125
SELECT "signedtest6", d1, d2 FROM cs2;
signedtest6 d1 d2
signedtest6 1.2500000000 1.2500000000
SELECT "signedtest6", d1, d2 FROM cs3;
signedtest6 d1 d2
signedtest6 0.12500000000000000000000000000000000000 0.1250000000000000000
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 = d2;
DELETE FROM cs2 WHERE d1 = d2;
DELETE FROM cs3 WHERE d1 = d2;
SELECT "signedtest7", d1, d2 FROM cs1;
signedtest7 d1 d2
signedtest7 99999999999999999999999999999999999998 9999999999999999998
signedtest7 99999999999999999999999999999999999999 9999999999999999999
signedtest7 -99999999999999999999999999999999999998 -9999999999999999998
signedtest7 -99999999999999999999999999999999999999 -9999999999999999999
signedtest7 NULL NULL
SELECT "signedtest7", d1, d2 FROM cs2;
signedtest7 d1 d2
signedtest7 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest7 9999999999999999999999999999.9999999999 999999999.9999999999
signedtest7 -9999999999999999999999999999.9999999998 -999999999.9999999998
signedtest7 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest7 NULL NULL
SELECT "signedtest7", d1, d2 FROM cs3;
signedtest7 d1 d2
signedtest7 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest7 0.99999999999999999999999999999999999999 0.9999999999999999999
signedtest7 -0.99999999999999999999999999999999999998 -0.9999999999999999998
signedtest7 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest7 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest7 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest7 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest7 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest7 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest7 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest7 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 != d2;
DELETE FROM cs2 WHERE d1 != d2;
DELETE FROM cs3 WHERE d1 != d2;
SELECT "signedtest8", d1, d2 FROM cs1;
signedtest8 d1 d2
signedtest8 125 125
signedtest8 -125 -125
signedtest8 0 0
signedtest8 NULL NULL
SELECT "signedtest8", d1, d2 FROM cs2;
signedtest8 d1 d2
signedtest8 1.2500000000 1.2500000000
signedtest8 -1.2500000000 -1.2500000000
signedtest8 1.1234567891 1.1234567891
signedtest8 1.9999999999 1.9999999999
signedtest8 -1.1234567891 -1.1234567891
signedtest8 -1.9999999999 -1.9999999999
signedtest8 1.0000000009 1.0000000009
signedtest8 -1.0000000009 -1.0000000009
signedtest8 0.0000000000 0.0000000000
signedtest8 NULL NULL
SELECT "signedtest8", d1, d2 FROM cs3;
signedtest8 d1 d2
signedtest8 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest8 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest8 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest8 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 < d2;
DELETE FROM cs2 WHERE d1 < d2;
DELETE FROM cs3 WHERE d1 < d2;
SELECT "signedtest9", d1, d2 FROM cs1;
signedtest9 d1 d2
signedtest9 125 125
signedtest9 -125 -125
signedtest9 99999999999999999999999999999999999998 9999999999999999998
signedtest9 99999999999999999999999999999999999999 9999999999999999999
signedtest9 0 0
signedtest9 NULL NULL
SELECT "signedtest9", d1, d2 FROM cs2;
signedtest9 d1 d2
signedtest9 1.2500000000 1.2500000000
signedtest9 -1.2500000000 -1.2500000000
signedtest9 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest9 9999999999999999999999999999.9999999999 999999999.9999999999
signedtest9 1.1234567891 1.1234567891
signedtest9 1.9999999999 1.9999999999
signedtest9 -1.1234567891 -1.1234567891
signedtest9 -1.9999999999 -1.9999999999
signedtest9 1.0000000009 1.0000000009
signedtest9 -1.0000000009 -1.0000000009
signedtest9 0.0000000000 0.0000000000
signedtest9 NULL NULL
SELECT "signedtest9", d1, d2 FROM cs3;
signedtest9 d1 d2
signedtest9 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest9 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest9 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest9 0.99999999999999999999999999999999999999 0.9999999999999999999
signedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest9 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest9 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest9 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest9 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 > d2;
DELETE FROM cs2 WHERE d1 > d2;
DELETE FROM cs3 WHERE d1 > d2;
SELECT "signedtest10", d1, d2 FROM cs1;
signedtest10 d1 d2
signedtest10 125 125
signedtest10 -125 -125
signedtest10 -99999999999999999999999999999999999998 -9999999999999999998
signedtest10 -99999999999999999999999999999999999999 -9999999999999999999
signedtest10 0 0
signedtest10 NULL NULL
SELECT "signedtest10", d1, d2 FROM cs2;
signedtest10 d1 d2
signedtest10 1.2500000000 1.2500000000
signedtest10 -1.2500000000 -1.2500000000
signedtest10 -9999999999999999999999999999.9999999998 -999999999.9999999998
signedtest10 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest10 1.1234567891 1.1234567891
signedtest10 1.9999999999 1.9999999999
signedtest10 -1.1234567891 -1.1234567891
signedtest10 -1.9999999999 -1.9999999999
signedtest10 1.0000000009 1.0000000009
signedtest10 -1.0000000009 -1.0000000009
signedtest10 0.0000000000 0.0000000000
signedtest10 NULL NULL
SELECT "signedtest10", d1, d2 FROM cs3;
signedtest10 d1 d2
signedtest10 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest10 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest10 -0.99999999999999999999999999999999999998 -0.9999999999999999998
signedtest10 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest10 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest10 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest10 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest10 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest10 NULL NULL
CALL unsignedinsertproc();
DELETE FROM cs4;
DELETE FROM cs5;
DELETE FROM cs6;
SELECT "unsignedtest1", d1, d2 FROM cs4;
unsignedtest1 d1 d2
SELECT "unsignedtest1", d1, d2 FROM cs5;
unsignedtest1 d1 d2
SELECT "unsignedtest1", d1, d2 FROM cs6;
unsignedtest1 d1 d2
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1=99999999999999999999999999999999999998;
DELETE FROM cs4 WHERE d2=9999999999999999999;
DELETE FROM cs5 WHERE d1=9999999999999999999999999999.9999999998;
DELETE FROM cs5 WHERE d2=999999999.9999999999;
DELETE FROM cs6 WHERE d1=0.99999999999999999999999999999999999998;
DELETE FROM cs6 WHERE d2=0.9999999999999999999;
SELECT "unsignedtest2", d1, d2 FROM cs4;
unsignedtest2 d1 d2
unsignedtest2 125 125
unsignedtest2 0 0
unsignedtest2 NULL NULL
SELECT "unsignedtest2", d1, d2 FROM cs5;
unsignedtest2 d1 d2
unsignedtest2 1.2500000000 1.2500000000
unsignedtest2 1.1234567891 1.1234567891
unsignedtest2 1.9999999999 1.9999999999
unsignedtest2 1.0000000009 1.0000000009
unsignedtest2 0.0000000000 0.0000000000
unsignedtest2 NULL NULL
SELECT "unsignedtest2", d1, d2 FROM cs6;
unsignedtest2 d1 d2
unsignedtest2 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest2 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest2 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest2 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest2 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest2 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 in (99999999999999999999999999999999999998, 99999999999999999999999999999999999999);
DELETE FROM cs5 WHERE d1 in (9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999999);
DELETE FROM cs6 WHERE d1 in (0.99999999999999999999999999999999999998, 0.99999999999999999999999999999999999999);
SELECT "unsignedtest3", d1, d2 FROM cs4;
unsignedtest3 d1 d2
unsignedtest3 125 125
unsignedtest3 0 0
unsignedtest3 NULL NULL
SELECT "unsignedtest3", d1, d2 FROM cs5;
unsignedtest3 d1 d2
unsignedtest3 1.2500000000 1.2500000000
unsignedtest3 1.1234567891 1.1234567891
unsignedtest3 1.9999999999 1.9999999999
unsignedtest3 1.0000000009 1.0000000009
unsignedtest3 0.0000000000 0.0000000000
unsignedtest3 NULL NULL
SELECT "unsignedtest3", d1, d2 FROM cs6;
unsignedtest3 d1 d2
unsignedtest3 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest3 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest3 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest3 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest3 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest3 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 >= 99999999999999999999999999999999999998 OR d2 >= 9999999999999999998;
DELETE FROM cs5 WHERE d1 >= 9999999999999999999999999999.9999999998 OR d2 >= 999999999.9999999998;
DELETE FROM cs6 WHERE d1 >= 0.99999999999999999999999999999999999998 OR d2 >= 0.9999999999999999998;
SELECT "unsignedtest4a", d1, d2 FROM cs4;
unsignedtest4a d1 d2
unsignedtest4a 125 125
unsignedtest4a 0 0
unsignedtest4a NULL NULL
SELECT "unsignedtest4a", d1, d2 FROM cs5;
unsignedtest4a d1 d2
unsignedtest4a 1.2500000000 1.2500000000
unsignedtest4a 1.1234567891 1.1234567891
unsignedtest4a 1.9999999999 1.9999999999
unsignedtest4a 1.0000000009 1.0000000009
unsignedtest4a 0.0000000000 0.0000000000
unsignedtest4a NULL NULL
SELECT "unsignedtest4a", d1, d2 FROM cs6;
unsignedtest4a d1 d2
unsignedtest4a 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest4a 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest4a 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest4a 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest4a 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest4a NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 > 99999999999999999999999999999999999998 OR d2 > 9999999999999999998;
DELETE FROM cs5 WHERE d1 > 9999999999999999999999999999.9999999998 OR d2 > 999999999.9999999998;
DELETE FROM cs6 WHERE d1 > 0.99999999999999999999999999999999999998 OR d2 > 0.9999999999999999998;
SELECT "unsignedtest4", d1, d2 FROM cs4;
unsignedtest4 d1 d2
unsignedtest4 125 125
unsignedtest4 99999999999999999999999999999999999998 9999999999999999998
unsignedtest4 0 0
unsignedtest4 NULL NULL
SELECT "unsignedtest4", d1, d2 FROM cs5;
unsignedtest4 d1 d2
unsignedtest4 1.2500000000 1.2500000000
unsignedtest4 9999999999999999999999999999.9999999998 999999999.9999999998
unsignedtest4 1.1234567891 1.1234567891
unsignedtest4 1.9999999999 1.9999999999
unsignedtest4 1.0000000009 1.0000000009
unsignedtest4 0.0000000000 0.0000000000
unsignedtest4 NULL NULL
SELECT "unsignedtest4", d1, d2 FROM cs6;
unsignedtest4 d1 d2
unsignedtest4 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest4 0.99999999999999999999999999999999999998 0.9999999999999999998
unsignedtest4 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest4 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest4 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest4 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest4 NULL NULL
DELETE FROM cs4 WHERE d1 is NULL;
DELETE FROM cs5 WHERE d1 is NULL;
DELETE FROM cs6 WHERE d1 is NULL;
SELECT "unsignedtest5", d1, d2 FROM cs4;
unsignedtest5 d1 d2
unsignedtest5 125 125
unsignedtest5 99999999999999999999999999999999999998 9999999999999999998
unsignedtest5 0 0
SELECT "unsignedtest5", d1, d2 FROM cs5;
unsignedtest5 d1 d2
unsignedtest5 1.2500000000 1.2500000000
unsignedtest5 9999999999999999999999999999.9999999998 999999999.9999999998
unsignedtest5 1.1234567891 1.1234567891
unsignedtest5 1.9999999999 1.9999999999
unsignedtest5 1.0000000009 1.0000000009
unsignedtest5 0.0000000000 0.0000000000
SELECT "unsignedtest5", d1, d2 FROM cs6;
unsignedtest5 d1 d2
unsignedtest5 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest5 0.99999999999999999999999999999999999998 0.9999999999999999998
unsignedtest5 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest5 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest5 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest5 0.00000000000000000000000000000000000000 0.0000000000000000000
DELETE FROM cs4 WHERE d1 != 125;
DELETE FROM cs5 WHERE d1 != 1.25;
DELETE FROM cs6 WHERE d1 != 0.125;
SELECT "unsignedtest6", d1, d2 FROM cs4;
unsignedtest6 d1 d2
unsignedtest6 125 125
SELECT "unsignedtest6", d1, d2 FROM cs5;
unsignedtest6 d1 d2
unsignedtest6 1.2500000000 1.2500000000
SELECT "unsignedtest6", d1, d2 FROM cs6;
unsignedtest6 d1 d2
unsignedtest6 0.12500000000000000000000000000000000000 0.1250000000000000000
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 = d2;
DELETE FROM cs5 WHERE d1 = d2;
DELETE FROM cs6 WHERE d1 = d2;
SELECT "unsignedtest7", d1, d2 FROM cs4;
unsignedtest7 d1 d2
unsignedtest7 99999999999999999999999999999999999998 9999999999999999998
unsignedtest7 99999999999999999999999999999999999999 9999999999999999999
unsignedtest7 NULL NULL
SELECT "unsignedtest7", d1, d2 FROM cs5;
unsignedtest7 d1 d2
unsignedtest7 9999999999999999999999999999.9999999998 999999999.9999999998
unsignedtest7 9999999999999999999999999999.9999999999 999999999.9999999999
unsignedtest7 NULL NULL
SELECT "unsignedtest7", d1, d2 FROM cs6;
unsignedtest7 d1 d2
unsignedtest7 0.99999999999999999999999999999999999998 0.9999999999999999998
unsignedtest7 0.99999999999999999999999999999999999999 0.9999999999999999999
unsignedtest7 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest7 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest7 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest7 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 != d2;
DELETE FROM cs5 WHERE d1 != d2;
DELETE FROM cs6 WHERE d1 != d2;
SELECT "unsignedtest8", d1, d2 FROM cs4;
unsignedtest8 d1 d2
unsignedtest8 125 125
unsignedtest8 0 0
unsignedtest8 NULL NULL
SELECT "unsignedtest8", d1, d2 FROM cs5;
unsignedtest8 d1 d2
unsignedtest8 1.2500000000 1.2500000000
unsignedtest8 1.1234567891 1.1234567891
unsignedtest8 1.9999999999 1.9999999999
unsignedtest8 1.0000000009 1.0000000009
unsignedtest8 0.0000000000 0.0000000000
unsignedtest8 NULL NULL
SELECT "unsignedtest8", d1, d2 FROM cs6;
unsignedtest8 d1 d2
unsignedtest8 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest8 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest8 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 < d2;
DELETE FROM cs5 WHERE d1 < d2;
DELETE FROM cs6 WHERE d1 < d2;
SELECT "unsignedtest9", d1, d2 FROM cs4;
unsignedtest9 d1 d2
unsignedtest9 125 125
unsignedtest9 99999999999999999999999999999999999998 9999999999999999998
unsignedtest9 99999999999999999999999999999999999999 9999999999999999999
unsignedtest9 0 0
unsignedtest9 NULL NULL
SELECT "unsignedtest9", d1, d2 FROM cs5;
unsignedtest9 d1 d2
unsignedtest9 1.2500000000 1.2500000000
unsignedtest9 9999999999999999999999999999.9999999998 999999999.9999999998
unsignedtest9 9999999999999999999999999999.9999999999 999999999.9999999999
unsignedtest9 1.1234567891 1.1234567891
unsignedtest9 1.9999999999 1.9999999999
unsignedtest9 1.0000000009 1.0000000009
unsignedtest9 0.0000000000 0.0000000000
unsignedtest9 NULL NULL
SELECT "unsignedtest9", d1, d2 FROM cs6;
unsignedtest9 d1 d2
unsignedtest9 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest9 0.99999999999999999999999999999999999998 0.9999999999999999998
unsignedtest9 0.99999999999999999999999999999999999999 0.9999999999999999999
unsignedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest9 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest9 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest9 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 > d2;
DELETE FROM cs5 WHERE d1 > d2;
DELETE FROM cs6 WHERE d1 > d2;
SELECT "unsignedtest10", d1, d2 FROM cs4;
unsignedtest10 d1 d2
unsignedtest10 125 125
unsignedtest10 0 0
unsignedtest10 NULL NULL
SELECT "unsignedtest10", d1, d2 FROM cs5;
unsignedtest10 d1 d2
unsignedtest10 1.2500000000 1.2500000000
unsignedtest10 1.1234567891 1.1234567891
unsignedtest10 1.9999999999 1.9999999999
unsignedtest10 1.0000000009 1.0000000009
unsignedtest10 0.0000000000 0.0000000000
unsignedtest10 NULL NULL
SELECT "unsignedtest10", d1, d2 FROM cs6;
unsignedtest10 d1 d2
unsignedtest10 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest10 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest10 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest10 NULL NULL
DROP PROCEDURE IF EXISTS signedinsertproc;
DROP PROCEDURE IF EXISTS signeddeleteproc;
DROP PROCEDURE IF EXISTS unsignedinsertproc;
DROP PROCEDURE IF EXISTS unsigneddeleteproc;
DROP DATABASE mcol641_delete_db;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,692 @@
DROP DATABASE IF EXISTS mcol641_insert_db;
CREATE DATABASE mcol641_insert_db;
USE mcol641_insert_db;
SET SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38),
d4 DECIMAL(19), d5 DECIMAL(19,10), d6 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED,
d4 DECIMAL(19) UNSIGNED, d5 DECIMAL(19,10) UNSIGNED, d6 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38),
d4 DECIMAL(19), d5 DECIMAL(19,10), d6 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED,
d4 DECIMAL(19) UNSIGNED, d5 DECIMAL(19,10) UNSIGNED, d6 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (125, 1.25, 0.125, 125, 1.25, 0.125);
INSERT INTO cs1 VALUES (-125, -1.25, -0.125, -125, -1.25, -0.125);
INSERT INTO cs1 VALUES (1.25, 125, 125, 1.25, 125, 125);
Warnings:
Note 1265 Data truncated for column 'd1' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Note 1265 Data truncated for column 'd4' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs1 VALUES (-1.25, -125, -125, -1.25, -125, -125);
Warnings:
Note 1265 Data truncated for column 'd1' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Note 1265 Data truncated for column 'd4' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998, 9999999999999999998, 999999999.9999999998, 0.9999999999999999998);
INSERT INTO cs1 values (99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 9999999999999999999, 999999999.9999999999, 0.9999999999999999999);
INSERT INTO cs1 values (-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998, -9999999999999999998, -999999999.9999999998, -0.9999999999999999998);
INSERT INTO cs1 values (-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -9999999999999999999, -999999999.9999999999, -0.9999999999999999999);
INSERT INTO cs1 VALUES (123456789012345678901234567890123456789, 12345678901234567890123456789.12345678912, 0.123456789012345678901234567890123456789, 12345678901234567890, 1234567890.12345678901, 0.12345678901234567891);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (-123456789012345678901234567890123456789, -12345678901234567890123456789.12345678912, -0.123456789012345678901234567890123456789, -12345678901234567890, -1234567890.12345678901, -0.12345678901234567891);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, 1.12345678919, 0.123456789012345678901234567890123456789, 0, 1.12345678919, 0.12345678901234567899);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, 1.12345678914, 0.123456789012345678901234567890123456784, 0, 1.12345678914, 0.12345678901234567894);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, 1.99999999999, 0.999999999999999999999999999999999999999, 0, 1.99999999999, 0.99999999999999999999);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, 1.99999999994, 0.999999999999999999999999999999999999994, 0, 1.99999999994, 0.99999999999999999994);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, -1.12345678919, -0.123456789012345678901234567890123456789, 0, -1.12345678919, -0.12345678901234567899);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, -1.12345678914, -0.123456789012345678901234567890123456784, 0, -1.12345678914, -0.12345678901234567894);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, -1.99999999999, -0.999999999999999999999999999999999999999, 0, -1.99999999999, -0.99999999999999999999);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, -1.99999999994, -0.999999999999999999999999999999999999994, 0, -1.99999999994, -0.99999999999999999994);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, 1.0000000009, 0.00000000000000000000000000000000000009, 0, 1.0000000009, 0.0000000000000000009);
INSERT INTO cs1 VALUES (0, 1.00000000009, 0.000000000000000000000000000000000000009, 0, 1.00000000009, 0.00000000000000000009);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, -1.0000000009, -0.00000000000000000000000000000000000009, 0, -1.0000000009, -0.0000000000000000009);
INSERT INTO cs1 VALUES (0, -1.00000000009, -0.000000000000000000000000000000000000009, 0, -1.00000000009, -0.00000000000000000009);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs1 VALUES (0, 0, 0, 0, 0, 0);
INSERT INTO cs1 VALUES (NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO cs1 VALUES ();
SELECT "test1", d1, d2, d3, d4, d5, d6 FROM cs1;
test1 d1 d2 d3 d4 d5 d6
test1 125 1.2500000000 0.12500000000000000000000000000000000000 125 1.2500000000 0.1250000000000000000
test1 -125 -1.2500000000 -0.12500000000000000000000000000000000000 -125 -1.2500000000 -0.1250000000000000000
test1 1 125.0000000000 0.99999999999999999999999999999999999999 1 125.0000000000 0.9999999999999999999
test1 -1 -125.0000000000 -0.99999999999999999999999999999999999999 -1 -125.0000000000 -0.9999999999999999999
test1 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999998 999999999.9999999998 0.9999999999999999998
test1 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 9999999999999999999 999999999.9999999999 0.9999999999999999999
test1 -99999999999999999999999999999999999998 -9999999999999999999999999999.9999999998 -0.99999999999999999999999999999999999998 -9999999999999999998 -999999999.9999999998 -0.9999999999999999998
test1 -99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.99999999999999999999999999999999999999 -9999999999999999999 -999999999.9999999999 -0.9999999999999999999
test1 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.12345678901234567890123456789012345679 9999999999999999999 999999999.9999999999 0.1234567890123456789
test1 -99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.12345678901234567890123456789012345679 -9999999999999999999 -999999999.9999999999 -0.1234567890123456789
test1 0 1.1234567892 0.12345678901234567890123456789012345679 0 1.1234567892 0.1234567890123456790
test1 0 1.1234567891 0.12345678901234567890123456789012345678 0 1.1234567891 0.1234567890123456789
test1 0 2.0000000000 0.99999999999999999999999999999999999999 0 2.0000000000 0.9999999999999999999
test1 0 1.9999999999 0.99999999999999999999999999999999999999 0 1.9999999999 0.9999999999999999999
test1 0 -1.1234567892 -0.12345678901234567890123456789012345679 0 -1.1234567892 -0.1234567890123456790
test1 0 -1.1234567891 -0.12345678901234567890123456789012345678 0 -1.1234567891 -0.1234567890123456789
test1 0 -2.0000000000 -0.99999999999999999999999999999999999999 0 -2.0000000000 -0.9999999999999999999
test1 0 -1.9999999999 -0.99999999999999999999999999999999999999 0 -1.9999999999 -0.9999999999999999999
test1 0 1.0000000009 0.00000000000000000000000000000000000009 0 1.0000000009 0.0000000000000000009
test1 0 1.0000000001 0.00000000000000000000000000000000000001 0 1.0000000001 0.0000000000000000001
test1 0 -1.0000000009 -0.00000000000000000000000000000000000009 0 -1.0000000009 -0.0000000000000000009
test1 0 -1.0000000001 -0.00000000000000000000000000000000000001 0 -1.0000000001 -0.0000000000000000001
test1 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test1 NULL NULL NULL NULL NULL NULL
test1 NULL NULL NULL NULL NULL NULL
DROP TABLE IF EXISTS cs1;
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38),
d4 DECIMAL(19), d5 DECIMAL(19,10), d6 DECIMAL(19,19)) ENGINE=columnstore;
INSERT INTO cs1 VALUES (125, 1.25, 0.125, 125, 1.25, 0.125),
(-125, -1.25, -0.125, -125, -1.25, -0.125),
(1.25, 125, 125, 1.25, 125, 125),
(-1.25, -125, -125, -1.25, -125, -125);
Warnings:
Note 1265 Data truncated for column 'd1' at row 3
Warning 1264 Out of range value for column 'd3' at row 3
Note 1265 Data truncated for column 'd4' at row 3
Warning 1264 Out of range value for column 'd6' at row 3
Note 1265 Data truncated for column 'd1' at row 4
Warning 1264 Out of range value for column 'd3' at row 4
Note 1265 Data truncated for column 'd4' at row 4
Warning 1264 Out of range value for column 'd6' at row 4
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998, 9999999999999999998, 999999999.9999999998, 0.9999999999999999998),
(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 9999999999999999999, 999999999.9999999999, 0.9999999999999999999),
(-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998, -9999999999999999998, -999999999.9999999998, -0.9999999999999999998),
(-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -9999999999999999999, -999999999.9999999999, -0.9999999999999999999);
INSERT INTO cs1 VALUES (123456789012345678901234567890123456789, 12345678901234567890123456789.12345678912, 0.123456789012345678901234567890123456789, 12345678901234567890, 1234567890.12345678901, 0.12345678901234567891),
(-123456789012345678901234567890123456789, -12345678901234567890123456789.12345678912, -0.123456789012345678901234567890123456789, -12345678901234567890, -1234567890.12345678901, -0.12345678901234567891);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
Warning 1264 Out of range value for column 'd1' at row 2
Warning 1264 Out of range value for column 'd2' at row 2
Note 1265 Data truncated for column 'd3' at row 2
Warning 1264 Out of range value for column 'd4' at row 2
Warning 1264 Out of range value for column 'd5' at row 2
Note 1265 Data truncated for column 'd6' at row 2
INSERT INTO cs1 VALUES (0, 1.12345678919, 0.123456789012345678901234567890123456789, 0, 1.12345678919, 0.12345678901234567899),
(0, 1.12345678914, 0.123456789012345678901234567890123456784, 0, 1.12345678914, 0.12345678901234567894),
(0, 1.99999999999, 0.999999999999999999999999999999999999999, 0, 1.99999999999, 0.99999999999999999999),
(0, 1.99999999994, 0.999999999999999999999999999999999999994, 0, 1.99999999994, 0.99999999999999999994),
(0, -1.12345678919, -0.123456789012345678901234567890123456789, 0, -1.12345678919, -0.12345678901234567899),
(0, -1.12345678914, -0.123456789012345678901234567890123456784, 0, -1.12345678914, -0.12345678901234567894),
(0, -1.99999999999, -0.999999999999999999999999999999999999999, 0, -1.99999999999, -0.99999999999999999999),
(0, -1.99999999994, -0.999999999999999999999999999999999999994, 0, -1.99999999994, -0.99999999999999999994);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
Note 1265 Data truncated for column 'd2' at row 2
Note 1265 Data truncated for column 'd3' at row 2
Note 1265 Data truncated for column 'd5' at row 2
Note 1265 Data truncated for column 'd6' at row 2
Note 1265 Data truncated for column 'd2' at row 3
Warning 1264 Out of range value for column 'd3' at row 3
Note 1265 Data truncated for column 'd5' at row 3
Warning 1264 Out of range value for column 'd6' at row 3
Note 1265 Data truncated for column 'd2' at row 4
Note 1265 Data truncated for column 'd3' at row 4
Note 1265 Data truncated for column 'd5' at row 4
Note 1265 Data truncated for column 'd6' at row 4
Note 1265 Data truncated for column 'd2' at row 5
Note 1265 Data truncated for column 'd3' at row 5
Note 1265 Data truncated for column 'd5' at row 5
Note 1265 Data truncated for column 'd6' at row 5
Note 1265 Data truncated for column 'd2' at row 6
Note 1265 Data truncated for column 'd3' at row 6
Note 1265 Data truncated for column 'd5' at row 6
Note 1265 Data truncated for column 'd6' at row 6
Note 1265 Data truncated for column 'd2' at row 7
Warning 1264 Out of range value for column 'd3' at row 7
Note 1265 Data truncated for column 'd5' at row 7
Warning 1264 Out of range value for column 'd6' at row 7
Note 1265 Data truncated for column 'd2' at row 8
Note 1265 Data truncated for column 'd3' at row 8
Note 1265 Data truncated for column 'd5' at row 8
Note 1265 Data truncated for column 'd6' at row 8
INSERT INTO cs1 VALUES (0, 1.0000000009, 0.00000000000000000000000000000000000009, 0, 1.0000000009, 0.0000000000000000009),
(0, 1.00000000009, 0.000000000000000000000000000000000000009, 0, 1.00000000009, 0.00000000000000000009),
(0, -1.0000000009, -0.00000000000000000000000000000000000009, 0, -1.0000000009, -0.0000000000000000009),
(0, -1.00000000009, -0.000000000000000000000000000000000000009, 0, -1.00000000009, -0.00000000000000000009);
Warnings:
Note 1265 Data truncated for column 'd2' at row 2
Note 1265 Data truncated for column 'd3' at row 2
Note 1265 Data truncated for column 'd5' at row 2
Note 1265 Data truncated for column 'd6' at row 2
Note 1265 Data truncated for column 'd2' at row 4
Note 1265 Data truncated for column 'd3' at row 4
Note 1265 Data truncated for column 'd5' at row 4
Note 1265 Data truncated for column 'd6' at row 4
INSERT INTO cs1 VALUES (0, 0, 0, 0, 0, 0),
(NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO cs1 VALUES (12345678901234567890123456789000000001, 1234567890123456789012345678.0010000008, 0.00001000000000000000000000000000000009, 1234567890120000001, 123456789.0020000009, 0.0000000070000000009),
(-12345678901234567890123456789000000001, -1234567890123456789012345678.0010000008, -0.00001000000000000000000000000000000009, -1234567890120000001, -123456789.0020000009, -0.0000000070000000009);
SELECT "test2", d1, d2, d3, d4, d5, d6 FROM cs1;
test2 d1 d2 d3 d4 d5 d6
test2 125 1.2500000000 0.12500000000000000000000000000000000000 125 1.2500000000 0.1250000000000000000
test2 -125 -1.2500000000 -0.12500000000000000000000000000000000000 -125 -1.2500000000 -0.1250000000000000000
test2 1 125.0000000000 0.99999999999999999999999999999999999999 1 125.0000000000 0.9999999999999999999
test2 -1 -125.0000000000 -0.99999999999999999999999999999999999999 -1 -125.0000000000 -0.9999999999999999999
test2 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999998 999999999.9999999998 0.9999999999999999998
test2 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 9999999999999999999 999999999.9999999999 0.9999999999999999999
test2 -99999999999999999999999999999999999998 -9999999999999999999999999999.9999999998 -0.99999999999999999999999999999999999998 -9999999999999999998 -999999999.9999999998 -0.9999999999999999998
test2 -99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.99999999999999999999999999999999999999 -9999999999999999999 -999999999.9999999999 -0.9999999999999999999
test2 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.12345678901234567890123456789012345679 9999999999999999999 999999999.9999999999 0.1234567890123456789
test2 -99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.12345678901234567890123456789012345679 -9999999999999999999 -999999999.9999999999 -0.1234567890123456789
test2 0 1.1234567892 0.12345678901234567890123456789012345679 0 1.1234567892 0.1234567890123456790
test2 0 1.1234567891 0.12345678901234567890123456789012345678 0 1.1234567891 0.1234567890123456789
test2 0 2.0000000000 0.99999999999999999999999999999999999999 0 2.0000000000 0.9999999999999999999
test2 0 1.9999999999 0.99999999999999999999999999999999999999 0 1.9999999999 0.9999999999999999999
test2 0 -1.1234567892 -0.12345678901234567890123456789012345679 0 -1.1234567892 -0.1234567890123456790
test2 0 -1.1234567891 -0.12345678901234567890123456789012345678 0 -1.1234567891 -0.1234567890123456789
test2 0 -2.0000000000 -0.99999999999999999999999999999999999999 0 -2.0000000000 -0.9999999999999999999
test2 0 -1.9999999999 -0.99999999999999999999999999999999999999 0 -1.9999999999 -0.9999999999999999999
test2 0 1.0000000009 0.00000000000000000000000000000000000009 0 1.0000000009 0.0000000000000000009
test2 0 1.0000000001 0.00000000000000000000000000000000000001 0 1.0000000001 0.0000000000000000001
test2 0 -1.0000000009 -0.00000000000000000000000000000000000009 0 -1.0000000009 -0.0000000000000000009
test2 0 -1.0000000001 -0.00000000000000000000000000000000000001 0 -1.0000000001 -0.0000000000000000001
test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test2 NULL NULL NULL NULL NULL NULL
test2 12345678901234567890123456789000000001 1234567890123456789012345678.0010000008 0.00001000000000000000000000000000000009 1234567890120000001 123456789.0020000009 0.0000000070000000009
test2 -12345678901234567890123456789000000001 -1234567890123456789012345678.0010000008 -0.00001000000000000000000000000000000009 -1234567890120000001 -123456789.0020000009 -0.0000000070000000009
INSERT INTO cs3 SELECT * FROM cs1;
SELECT "insert_select_test1", d1, d2, d3, d4, d5, d6 FROM cs3;
insert_select_test1 d1 d2 d3 d4 d5 d6
insert_select_test1 125 1.2500000000 0.12500000000000000000000000000000000000 125 1.2500000000 0.1250000000000000000
insert_select_test1 -125 -1.2500000000 -0.12500000000000000000000000000000000000 -125 -1.2500000000 -0.1250000000000000000
insert_select_test1 1 125.0000000000 0.99999999999999999999999999999999999999 1 125.0000000000 0.9999999999999999999
insert_select_test1 -1 -125.0000000000 -0.99999999999999999999999999999999999999 -1 -125.0000000000 -0.9999999999999999999
insert_select_test1 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999998 999999999.9999999998 0.9999999999999999998
insert_select_test1 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 9999999999999999999 999999999.9999999999 0.9999999999999999999
insert_select_test1 -99999999999999999999999999999999999998 -9999999999999999999999999999.9999999998 -0.99999999999999999999999999999999999998 -9999999999999999998 -999999999.9999999998 -0.9999999999999999998
insert_select_test1 -99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.99999999999999999999999999999999999999 -9999999999999999999 -999999999.9999999999 -0.9999999999999999999
insert_select_test1 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.12345678901234567890123456789012345679 9999999999999999999 999999999.9999999999 0.1234567890123456789
insert_select_test1 -99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.12345678901234567890123456789012345679 -9999999999999999999 -999999999.9999999999 -0.1234567890123456789
insert_select_test1 0 1.1234567892 0.12345678901234567890123456789012345679 0 1.1234567892 0.1234567890123456790
insert_select_test1 0 1.1234567891 0.12345678901234567890123456789012345678 0 1.1234567891 0.1234567890123456789
insert_select_test1 0 2.0000000000 0.99999999999999999999999999999999999999 0 2.0000000000 0.9999999999999999999
insert_select_test1 0 1.9999999999 0.99999999999999999999999999999999999999 0 1.9999999999 0.9999999999999999999
insert_select_test1 0 -1.1234567892 -0.12345678901234567890123456789012345679 0 -1.1234567892 -0.1234567890123456790
insert_select_test1 0 -1.1234567891 -0.12345678901234567890123456789012345678 0 -1.1234567891 -0.1234567890123456789
insert_select_test1 0 -2.0000000000 -0.99999999999999999999999999999999999999 0 -2.0000000000 -0.9999999999999999999
insert_select_test1 0 -1.9999999999 -0.99999999999999999999999999999999999999 0 -1.9999999999 -0.9999999999999999999
insert_select_test1 0 1.0000000009 0.00000000000000000000000000000000000009 0 1.0000000009 0.0000000000000000009
insert_select_test1 0 1.0000000001 0.00000000000000000000000000000000000001 0 1.0000000001 0.0000000000000000001
insert_select_test1 0 -1.0000000009 -0.00000000000000000000000000000000000009 0 -1.0000000009 -0.0000000000000000009
insert_select_test1 0 -1.0000000001 -0.00000000000000000000000000000000000001 0 -1.0000000001 -0.0000000000000000001
insert_select_test1 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test1 NULL NULL NULL NULL NULL NULL
insert_select_test1 12345678901234567890123456789000000001 1234567890123456789012345678.0010000008 0.00001000000000000000000000000000000009 1234567890120000001 123456789.0020000009 0.0000000070000000009
insert_select_test1 -12345678901234567890123456789000000001 -1234567890123456789012345678.0010000008 -0.00001000000000000000000000000000000009 -1234567890120000001 -123456789.0020000009 -0.0000000070000000009
SELECT * FROM cs3 INTO OUTFILE '/tmp/wide_decimal_ldi.txt' FIELDS TERMINATED BY ',';
Warnings:
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
DELETE FROM cs3;
LOAD DATA LOCAL INFILE '/tmp/wide_decimal_ldi.txt' INTO TABLE cs3 FIELDS TERMINATED BY ',';
SELECT "ldi_test1", d1, d2, d3, d4, d5, d6 FROM cs3;
ldi_test1 d1 d2 d3 d4 d5 d6
ldi_test1 125 1.2500000000 0.12500000000000000000000000000000000000 125 1.2500000000 0.1250000000000000000
ldi_test1 -125 -1.2500000000 -0.12500000000000000000000000000000000000 -125 -1.2500000000 -0.1250000000000000000
ldi_test1 1 125.0000000000 0.99999999999999999999999999999999999999 1 125.0000000000 0.9999999999999999999
ldi_test1 -1 -125.0000000000 -0.99999999999999999999999999999999999999 -1 -125.0000000000 -0.9999999999999999999
ldi_test1 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999998 999999999.9999999998 0.9999999999999999998
ldi_test1 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 9999999999999999999 999999999.9999999999 0.9999999999999999999
ldi_test1 -99999999999999999999999999999999999998 -9999999999999999999999999999.9999999998 -0.99999999999999999999999999999999999998 -9999999999999999998 -999999999.9999999998 -0.9999999999999999998
ldi_test1 -99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.99999999999999999999999999999999999999 -9999999999999999999 -999999999.9999999999 -0.9999999999999999999
ldi_test1 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.12345678901234567890123456789012345679 9999999999999999999 999999999.9999999999 0.1234567890123456789
ldi_test1 -99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.12345678901234567890123456789012345679 -9999999999999999999 -999999999.9999999999 -0.1234567890123456789
ldi_test1 0 1.1234567892 0.12345678901234567890123456789012345679 0 1.1234567892 0.1234567890123456790
ldi_test1 0 1.1234567891 0.12345678901234567890123456789012345678 0 1.1234567891 0.1234567890123456789
ldi_test1 0 2.0000000000 0.99999999999999999999999999999999999999 0 2.0000000000 0.9999999999999999999
ldi_test1 0 1.9999999999 0.99999999999999999999999999999999999999 0 1.9999999999 0.9999999999999999999
ldi_test1 0 -1.1234567892 -0.12345678901234567890123456789012345679 0 -1.1234567892 -0.1234567890123456790
ldi_test1 0 -1.1234567891 -0.12345678901234567890123456789012345678 0 -1.1234567891 -0.1234567890123456789
ldi_test1 0 -2.0000000000 -0.99999999999999999999999999999999999999 0 -2.0000000000 -0.9999999999999999999
ldi_test1 0 -1.9999999999 -0.99999999999999999999999999999999999999 0 -1.9999999999 -0.9999999999999999999
ldi_test1 0 1.0000000009 0.00000000000000000000000000000000000009 0 1.0000000009 0.0000000000000000009
ldi_test1 0 1.0000000001 0.00000000000000000000000000000000000001 0 1.0000000001 0.0000000000000000001
ldi_test1 0 -1.0000000009 -0.00000000000000000000000000000000000009 0 -1.0000000009 -0.0000000000000000009
ldi_test1 0 -1.0000000001 -0.00000000000000000000000000000000000001 0 -1.0000000001 -0.0000000000000000001
ldi_test1 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test1 NULL NULL NULL NULL NULL NULL
ldi_test1 12345678901234567890123456789000000001 1234567890123456789012345678.0010000008 0.00001000000000000000000000000000000009 1234567890120000001 123456789.0020000009 0.0000000070000000009
ldi_test1 -12345678901234567890123456789000000001 -1234567890123456789012345678.0010000008 -0.00001000000000000000000000000000000009 -1234567890120000001 -123456789.0020000009 -0.0000000070000000009
INSERT INTO cs2 VALUES (125, 1.25, 0.125, 125, 1.25, 0.125);
INSERT INTO cs2 VALUES (-125, -1.25, -0.125, -125, -1.25, -0.125);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (1.25, 125, 125, 1.25, 125, 125);
Warnings:
Note 1265 Data truncated for column 'd1' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Note 1265 Data truncated for column 'd4' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (-1.25, -125, -125, -1.25, -125, -125);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998, 9999999999999999998, 999999999.9999999998, 0.9999999999999999998);
INSERT INTO cs2 values (99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 9999999999999999999, 999999999.9999999999, 0.9999999999999999999);
INSERT INTO cs2 values (-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998, -9999999999999999998, -999999999.9999999998, -0.9999999999999999998);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 values (-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -9999999999999999999, -999999999.9999999999, -0.9999999999999999999);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (123456789012345678901234567890123456789, 12345678901234567890123456789.12345678912, 0.123456789012345678901234567890123456789, 12345678901234567890, 1234567890.12345678901, 0.12345678901234567891);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs2 VALUES (-123456789012345678901234567890123456789, -12345678901234567890123456789.12345678912, -0.123456789012345678901234567890123456789, -12345678901234567890, -1234567890.12345678901, -0.12345678901234567891);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, 1.12345678919, 0.123456789012345678901234567890123456789, 0, 1.12345678919, 0.12345678901234567899);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, 1.12345678914, 0.123456789012345678901234567890123456784, 0, 1.12345678914, 0.12345678901234567894);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, 1.99999999999, 0.999999999999999999999999999999999999999, 0, 1.99999999999, 0.99999999999999999999);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, 1.99999999994, 0.999999999999999999999999999999999999994, 0, 1.99999999994, 0.99999999999999999994);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, -1.12345678919, -0.123456789012345678901234567890123456789, 0, -1.12345678919, -0.12345678901234567899);
Warnings:
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, -1.12345678914, -0.123456789012345678901234567890123456784, 0, -1.12345678914, -0.12345678901234567894);
Warnings:
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, -1.99999999999, -0.999999999999999999999999999999999999999, 0, -1.99999999999, -0.99999999999999999999);
Warnings:
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, -1.99999999994, -0.999999999999999999999999999999999999994, 0, -1.99999999994, -0.99999999999999999994);
Warnings:
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, 1.0000000009, 0.00000000000000000000000000000000000009, 0, 1.0000000009, 0.0000000000000000009);
INSERT INTO cs2 VALUES (0, 1.00000000009, 0.000000000000000000000000000000000000009, 0, 1.00000000009, 0.00000000000000000009);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, -1.0000000009, -0.00000000000000000000000000000000000009, 0, -1.0000000009, -0.0000000000000000009);
Warnings:
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, -1.00000000009, -0.000000000000000000000000000000000000009, 0, -1.00000000009, -0.00000000000000000009);
Warnings:
Warning 1264 Out of range value for column 'd2' at row 1
Warning 1264 Out of range value for column 'd3' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Warning 1264 Out of range value for column 'd6' at row 1
INSERT INTO cs2 VALUES (0, 0, 0, 0, 0, 0);
INSERT INTO cs2 VALUES (NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO cs2 VALUES ();
SELECT "test3", d1, d2, d3, d4, d5, d6 FROM cs2;
test3 d1 d2 d3 d4 d5 d6
test3 125 1.2500000000 0.12500000000000000000000000000000000000 125 1.2500000000 0.1250000000000000000
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 1 125.0000000000 0.99999999999999999999999999999999999999 1 125.0000000000 0.9999999999999999999
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999998 999999999.9999999998 0.9999999999999999998
test3 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 9999999999999999999 999999999.9999999999 0.9999999999999999999
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.12345678901234567890123456789012345679 9999999999999999999 999999999.9999999999 0.1234567890123456789
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 0 1.1234567892 0.12345678901234567890123456789012345679 0 1.1234567892 0.1234567890123456790
test3 0 1.1234567891 0.12345678901234567890123456789012345678 0 1.1234567891 0.1234567890123456789
test3 0 2.0000000000 0.99999999999999999999999999999999999999 0 2.0000000000 0.9999999999999999999
test3 0 1.9999999999 0.99999999999999999999999999999999999999 0 1.9999999999 0.9999999999999999999
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 0 1.0000000009 0.00000000000000000000000000000000000009 0 1.0000000009 0.0000000000000000009
test3 0 1.0000000001 0.00000000000000000000000000000000000001 0 1.0000000001 0.0000000000000000001
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test3 NULL NULL NULL NULL NULL NULL
test3 NULL NULL NULL NULL NULL NULL
DROP TABLE IF EXISTS cs2;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED,
d4 DECIMAL(19) UNSIGNED, d5 DECIMAL(19,10) UNSIGNED, d6 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs2 VALUES (125, 1.25, 0.125, 125, 1.25, 0.125),
(-125, -1.25, -0.125, -125, -1.25, -0.125),
(1.25, 125, 125, 1.25, 125, 125),
(-1.25, -125, -125, -1.25, -125, -125);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 2
Warning 1264 Out of range value for column 'd2' at row 2
Warning 1264 Out of range value for column 'd3' at row 2
Warning 1264 Out of range value for column 'd4' at row 2
Warning 1264 Out of range value for column 'd5' at row 2
Warning 1264 Out of range value for column 'd6' at row 2
Note 1265 Data truncated for column 'd1' at row 3
Warning 1264 Out of range value for column 'd3' at row 3
Note 1265 Data truncated for column 'd4' at row 3
Warning 1264 Out of range value for column 'd6' at row 3
Warning 1264 Out of range value for column 'd1' at row 4
Warning 1264 Out of range value for column 'd2' at row 4
Warning 1264 Out of range value for column 'd3' at row 4
Warning 1264 Out of range value for column 'd4' at row 4
Warning 1264 Out of range value for column 'd5' at row 4
Warning 1264 Out of range value for column 'd6' at row 4
INSERT INTO cs2 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998, 9999999999999999998, 999999999.9999999998, 0.9999999999999999998),
(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 9999999999999999999, 999999999.9999999999, 0.9999999999999999999),
(-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998, -9999999999999999998, -999999999.9999999998, -0.9999999999999999998),
(-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -9999999999999999999, -999999999.9999999999, -0.9999999999999999999);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 3
Warning 1264 Out of range value for column 'd2' at row 3
Warning 1264 Out of range value for column 'd3' at row 3
Warning 1264 Out of range value for column 'd4' at row 3
Warning 1264 Out of range value for column 'd5' at row 3
Warning 1264 Out of range value for column 'd6' at row 3
Warning 1264 Out of range value for column 'd1' at row 4
Warning 1264 Out of range value for column 'd2' at row 4
Warning 1264 Out of range value for column 'd3' at row 4
Warning 1264 Out of range value for column 'd4' at row 4
Warning 1264 Out of range value for column 'd5' at row 4
Warning 1264 Out of range value for column 'd6' at row 4
INSERT INTO cs2 VALUES (123456789012345678901234567890123456789, 12345678901234567890123456789.12345678912, 0.123456789012345678901234567890123456789, 12345678901234567890, 1234567890.12345678901, 0.12345678901234567891),
(-123456789012345678901234567890123456789, -12345678901234567890123456789.12345678912, -0.123456789012345678901234567890123456789, -12345678901234567890, -1234567890.12345678901, -0.12345678901234567891);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 1
Warning 1264 Out of range value for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Warning 1264 Out of range value for column 'd4' at row 1
Warning 1264 Out of range value for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
Warning 1264 Out of range value for column 'd1' at row 2
Warning 1264 Out of range value for column 'd2' at row 2
Warning 1264 Out of range value for column 'd3' at row 2
Warning 1264 Out of range value for column 'd4' at row 2
Warning 1264 Out of range value for column 'd5' at row 2
Warning 1264 Out of range value for column 'd6' at row 2
INSERT INTO cs2 VALUES (0, 1.12345678919, 0.123456789012345678901234567890123456789, 0, 1.12345678919, 0.12345678901234567899),
(0, 1.12345678914, 0.123456789012345678901234567890123456784, 0, 1.12345678914, 0.12345678901234567894),
(0, 1.99999999999, 0.999999999999999999999999999999999999999, 0, 1.99999999999, 0.99999999999999999999),
(0, 1.99999999994, 0.999999999999999999999999999999999999994, 0, 1.99999999994, 0.99999999999999999994),
(0, -1.12345678919, -0.123456789012345678901234567890123456789, 0, -1.12345678919, -0.12345678901234567899),
(0, -1.12345678914, -0.123456789012345678901234567890123456784, 0, -1.12345678914, -0.12345678901234567894),
(0, -1.99999999999, -0.999999999999999999999999999999999999999, 0, -1.99999999999, -0.99999999999999999999),
(0, -1.99999999994, -0.999999999999999999999999999999999999994, 0, -1.99999999994, -0.99999999999999999994);
Warnings:
Note 1265 Data truncated for column 'd2' at row 1
Note 1265 Data truncated for column 'd3' at row 1
Note 1265 Data truncated for column 'd5' at row 1
Note 1265 Data truncated for column 'd6' at row 1
Note 1265 Data truncated for column 'd2' at row 2
Note 1265 Data truncated for column 'd3' at row 2
Note 1265 Data truncated for column 'd5' at row 2
Note 1265 Data truncated for column 'd6' at row 2
Note 1265 Data truncated for column 'd2' at row 3
Warning 1264 Out of range value for column 'd3' at row 3
Note 1265 Data truncated for column 'd5' at row 3
Warning 1264 Out of range value for column 'd6' at row 3
Note 1265 Data truncated for column 'd2' at row 4
Note 1265 Data truncated for column 'd3' at row 4
Note 1265 Data truncated for column 'd5' at row 4
Note 1265 Data truncated for column 'd6' at row 4
Warning 1264 Out of range value for column 'd2' at row 5
Warning 1264 Out of range value for column 'd3' at row 5
Warning 1264 Out of range value for column 'd5' at row 5
Warning 1264 Out of range value for column 'd6' at row 5
Warning 1264 Out of range value for column 'd2' at row 6
Warning 1264 Out of range value for column 'd3' at row 6
Warning 1264 Out of range value for column 'd5' at row 6
Warning 1264 Out of range value for column 'd6' at row 6
Warning 1264 Out of range value for column 'd2' at row 7
Warning 1264 Out of range value for column 'd3' at row 7
Warning 1264 Out of range value for column 'd5' at row 7
Warning 1264 Out of range value for column 'd6' at row 7
Warning 1264 Out of range value for column 'd2' at row 8
Warning 1264 Out of range value for column 'd3' at row 8
Warning 1264 Out of range value for column 'd5' at row 8
Warning 1264 Out of range value for column 'd6' at row 8
INSERT INTO cs2 VALUES (0, 1.0000000009, 0.00000000000000000000000000000000000009, 0, 1.0000000009, 0.0000000000000000009),
(0, 1.00000000009, 0.000000000000000000000000000000000000009, 0, 1.00000000009, 0.00000000000000000009),
(0, -1.0000000009, -0.00000000000000000000000000000000000009, 0, -1.0000000009, -0.0000000000000000009),
(0, -1.00000000009, -0.000000000000000000000000000000000000009, 0, -1.00000000009, -0.00000000000000000009);
Warnings:
Note 1265 Data truncated for column 'd2' at row 2
Note 1265 Data truncated for column 'd3' at row 2
Note 1265 Data truncated for column 'd5' at row 2
Note 1265 Data truncated for column 'd6' at row 2
Warning 1264 Out of range value for column 'd2' at row 3
Warning 1264 Out of range value for column 'd3' at row 3
Warning 1264 Out of range value for column 'd5' at row 3
Warning 1264 Out of range value for column 'd6' at row 3
Warning 1264 Out of range value for column 'd2' at row 4
Warning 1264 Out of range value for column 'd3' at row 4
Warning 1264 Out of range value for column 'd5' at row 4
Warning 1264 Out of range value for column 'd6' at row 4
INSERT INTO cs2 VALUES (0, 0, 0, 0, 0, 0),
(NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO cs2 VALUES (12345678901234567890123456789000000001, 1234567890123456789012345678.0010000008, 0.00001000000000000000000000000000000009, 1234567890120000001, 123456789.0020000009, 0.0000000070000000009),
(-12345678901234567890123456789000000001, -1234567890123456789012345678.0010000008, -0.00001000000000000000000000000000000009, -1234567890120000001, -123456789.0020000009, -0.0000000070000000009);
Warnings:
Warning 1264 Out of range value for column 'd1' at row 2
Warning 1264 Out of range value for column 'd2' at row 2
Warning 1264 Out of range value for column 'd3' at row 2
Warning 1264 Out of range value for column 'd4' at row 2
Warning 1264 Out of range value for column 'd5' at row 2
Warning 1264 Out of range value for column 'd6' at row 2
SELECT "test4", d1, d2, d3, d4, d5, d6 FROM cs2;
test4 d1 d2 d3 d4 d5 d6
test4 125 1.2500000000 0.12500000000000000000000000000000000000 125 1.2500000000 0.1250000000000000000
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 1 125.0000000000 0.99999999999999999999999999999999999999 1 125.0000000000 0.9999999999999999999
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999998 999999999.9999999998 0.9999999999999999998
test4 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 9999999999999999999 999999999.9999999999 0.9999999999999999999
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.12345678901234567890123456789012345679 9999999999999999999 999999999.9999999999 0.1234567890123456789
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 0 1.1234567892 0.12345678901234567890123456789012345679 0 1.1234567892 0.1234567890123456790
test4 0 1.1234567891 0.12345678901234567890123456789012345678 0 1.1234567891 0.1234567890123456789
test4 0 2.0000000000 0.99999999999999999999999999999999999999 0 2.0000000000 0.9999999999999999999
test4 0 1.9999999999 0.99999999999999999999999999999999999999 0 1.9999999999 0.9999999999999999999
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 0 1.0000000009 0.00000000000000000000000000000000000009 0 1.0000000009 0.0000000000000000009
test4 0 1.0000000001 0.00000000000000000000000000000000000001 0 1.0000000001 0.0000000000000000001
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
test4 NULL NULL NULL NULL NULL NULL
test4 12345678901234567890123456789000000001 1234567890123456789012345678.0010000008 0.00001000000000000000000000000000000009 1234567890120000001 123456789.0020000009 0.0000000070000000009
test4 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
INSERT INTO cs4 SELECT * FROM cs2;
SELECT "insert_select_test2", d1, d2, d3, d4, d5, d6 FROM cs4;
insert_select_test2 d1 d2 d3 d4 d5 d6
insert_select_test2 125 1.2500000000 0.12500000000000000000000000000000000000 125 1.2500000000 0.1250000000000000000
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 1 125.0000000000 0.99999999999999999999999999999999999999 1 125.0000000000 0.9999999999999999999
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999998 999999999.9999999998 0.9999999999999999998
insert_select_test2 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 9999999999999999999 999999999.9999999999 0.9999999999999999999
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.12345678901234567890123456789012345679 9999999999999999999 999999999.9999999999 0.1234567890123456789
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 0 1.1234567892 0.12345678901234567890123456789012345679 0 1.1234567892 0.1234567890123456790
insert_select_test2 0 1.1234567891 0.12345678901234567890123456789012345678 0 1.1234567891 0.1234567890123456789
insert_select_test2 0 2.0000000000 0.99999999999999999999999999999999999999 0 2.0000000000 0.9999999999999999999
insert_select_test2 0 1.9999999999 0.99999999999999999999999999999999999999 0 1.9999999999 0.9999999999999999999
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 0 1.0000000009 0.00000000000000000000000000000000000009 0 1.0000000009 0.0000000000000000009
insert_select_test2 0 1.0000000001 0.00000000000000000000000000000000000001 0 1.0000000001 0.0000000000000000001
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
insert_select_test2 NULL NULL NULL NULL NULL NULL
insert_select_test2 12345678901234567890123456789000000001 1234567890123456789012345678.0010000008 0.00001000000000000000000000000000000009 1234567890120000001 123456789.0020000009 0.0000000070000000009
insert_select_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
SELECT * FROM cs4 INTO OUTFILE '/tmp/wide_decimal_ldi.txt' FIELDS TERMINATED BY ',';
Warnings:
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
DELETE FROM cs4;
LOAD DATA LOCAL INFILE '/tmp/wide_decimal_ldi.txt' INTO TABLE cs4 FIELDS TERMINATED BY ',';
SELECT "ldi_test2", d1, d2, d3, d4, d5, d6 FROM cs4;
ldi_test2 d1 d2 d3 d4 d5 d6
ldi_test2 125 1.2500000000 0.12500000000000000000000000000000000000 125 1.2500000000 0.1250000000000000000
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 1 125.0000000000 0.99999999999999999999999999999999999999 1 125.0000000000 0.9999999999999999999
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999998 999999999.9999999998 0.9999999999999999998
ldi_test2 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 9999999999999999999 999999999.9999999999 0.9999999999999999999
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.12345678901234567890123456789012345679 9999999999999999999 999999999.9999999999 0.1234567890123456789
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 0 1.1234567892 0.12345678901234567890123456789012345679 0 1.1234567892 0.1234567890123456790
ldi_test2 0 1.1234567891 0.12345678901234567890123456789012345678 0 1.1234567891 0.1234567890123456789
ldi_test2 0 2.0000000000 0.99999999999999999999999999999999999999 0 2.0000000000 0.9999999999999999999
ldi_test2 0 1.9999999999 0.99999999999999999999999999999999999999 0 1.9999999999 0.9999999999999999999
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 0 1.0000000009 0.00000000000000000000000000000000000009 0 1.0000000009 0.0000000000000000009
ldi_test2 0 1.0000000001 0.00000000000000000000000000000000000001 0 1.0000000001 0.0000000000000000001
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
ldi_test2 NULL NULL NULL NULL NULL NULL
ldi_test2 12345678901234567890123456789000000001 1234567890123456789012345678.0010000008 0.00001000000000000000000000000000000009 1234567890120000001 123456789.0020000009 0.0000000070000000009
ldi_test2 0 0.0000000000 0.00000000000000000000000000000000000000 0 0.0000000000 0.0000000000000000000
SET SQL_MODE=default;
DROP DATABASE mcol641_insert_db;

View File

@ -0,0 +1,71 @@
DROP DATABASE IF EXISTS mcol641_joins_db;
CREATE DATABASE mcol641_joins_db;
USE mcol641_joins_db;
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38)) ENGINE=columnstore;
CREATE TABLE cs2 (de1 DECIMAL(38,38), de2 DECIMAL(38,10)) ENGINE=columnstore;
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998);
INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, 1234567890123456789012345678.1234567890, 0.12345678901234567890123456789012345678);
INSERT INTO cs1 VALUES (-12345678901234567890123456789012345678, -1234567890123456789012345678.1234567890, -0.12345678901234567890123456789012345678);
INSERT INTO cs1 VALUES (0, 1.1234567891, 0.1234567890123456789012345678912345);
INSERT INTO cs2 values (0.99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998);
INSERT INTO cs2 VALUES (0.12345678901234567890123456789012345678, 1234567890123456789012345678.0123456789);
INSERT INTO cs2 VALUES (-0.12345678901234567890123456789012345678, -1234567890123456789012345678.0123456789);
INSERT INTO cs2 VALUES (0.12345678901234567890123456789, 1.1234567891);
SELECT cs1.d1, cs1.d2, cs2.de1 FROM cs1 INNER JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 1;
d1 d2 de1
0 1.1234567891 0.12345678901234567890123456789000000000
99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998
SELECT cs2.de1, cs1.d1, cs1.d2 FROM cs1 INNER JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
de1 d1 d2
-0.12345678901234567890123456789012345678 -12345678901234567890123456789012345678 -1234567890123456789012345678.1234567890
0.12345678901234567890123456789012345678 12345678901234567890123456789012345678 1234567890123456789012345678.1234567890
0.99999999999999999999999999999999999998 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
SELECT cs2.de2, cs1.d1, cs1.d3, cs2.de1 FROM cs1 LEFT JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 2;
de2 d1 d3 de1
NULL -12345678901234567890123456789012345678 -0.12345678901234567890123456789012345678 NULL
1.1234567891 0 0.12345678901234567890123456789123450000 0.12345678901234567890123456789000000000
NULL 12345678901234567890123456789012345678 0.12345678901234567890123456789012345678 NULL
9999999999999999999999999999.9999999998 99999999999999999999999999999999999998 0.99999999999999999999999999999999999998 0.99999999999999999999999999999999999998
SELECT cs1.d3, cs1.d1, cs1.d2, cs2.de2 FROM cs1 LEFT JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
d3 d1 d2 de2
-0.12345678901234567890123456789012345678 -12345678901234567890123456789012345678 -1234567890123456789012345678.1234567890 -1234567890123456789012345678.0123456789
0.12345678901234567890123456789012345678 12345678901234567890123456789012345678 1234567890123456789012345678.1234567890 1234567890123456789012345678.0123456789
0.12345678901234567890123456789123450000 0 1.1234567891 NULL
0.99999999999999999999999999999999999998 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 9999999999999999999999999999.9999999998
SELECT cs1.d1, cs1.d3, cs2.de1, cs2.de2 FROM cs1 RIGHT JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 3;
d1 d3 de1 de2
NULL NULL -0.12345678901234567890123456789012345678 -1234567890123456789012345678.0123456789
0 0.12345678901234567890123456789123450000 0.12345678901234567890123456789000000000 1.1234567891
NULL NULL 0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789
99999999999999999999999999999999999998 0.99999999999999999999999999999999999998 0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
SELECT cs2.de1, cs2.de2, cs1.d1, cs1.d2 FROM cs1 RIGHT JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
de1 de2 d1 d2
-0.12345678901234567890123456789012345678 -1234567890123456789012345678.0123456789 -12345678901234567890123456789012345678 -1234567890123456789012345678.1234567890
0.12345678901234567890123456789000000000 1.1234567891 NULL NULL
0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 12345678901234567890123456789012345678 1234567890123456789012345678.1234567890
0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
SELECT * FROM cs1 WHERE cs1.d2 IN (SELECT cs2.de2 FROM cs2 WHERE cs2.de2 = cs1.d2) ORDER BY 1;
d1 d2 d3
0 1.1234567891 0.12345678901234567890123456789123450000
99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998
SELECT * FROM cs2 WHERE cs2.de2 IN (SELECT cs1.d2 FROM cs1 WHERE cs1.d2 = cs2.de2) ORDER BY 1;
de1 de2
0.12345678901234567890123456789000000000 1.1234567891
0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
SELECT * FROM cs1 WHERE cs1.d3 IN (SELECT cs2.de1 FROM cs2 WHERE cs2.de1 = cs1.d3) ORDER BY 1;
d1 d2 d3
-12345678901234567890123456789012345678 -1234567890123456789012345678.1234567890 -0.12345678901234567890123456789012345678
12345678901234567890123456789012345678 1234567890123456789012345678.1234567890 0.12345678901234567890123456789012345678
99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998
SELECT * FROM cs2 WHERE cs2.de1 IN (SELECT cs1.d3 FROM cs1 WHERE cs1.d3 = cs2.de1) ORDER BY 1;
de1 de2
-0.12345678901234567890123456789012345678 -1234567890123456789012345678.0123456789
0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789
0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
SELECT count(*) FROM cs1 where exists (SELECT cs2.de2 FROM cs2 WHERE cs1.d2=cs2.de2);
count(*)
2
SELECT count(*) FROM cs2 where not exists (SELECT cs1.d2 FROM cs1 WHERE cs1.d2=cs2.de2);
count(*)
2
DROP DATABASE mcol641_joins_db;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,390 @@
DROP DATABASE IF EXISTS mcol641_sorting_db;
CREATE DATABASE mcol641_sorting_db;
USE mcol641_sorting_db;
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 DECIMAL(38),d5 DECIMAL(38),i1 INT) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED, d4 DECIMAL(38),d5 DECIMAL(38),i1 INT) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(1234,5678,-0.12345678901234567890123456789018,2,1,1),
(1234,-5678,0.1234567890123456789012345,2,1,1),
(12345678901234567890123,1234567890123456789012.9012345678,0.123456789012345678901234567890,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.1234567890123456783456789012345678,3,2,2),
(-123456789123456789,-5678,0.123456789012345673456789012345678,3,2,2),
(12345678901234567890901,1234567890123478901234.9012345678,0.1234567890123456789012345678908,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111112,1,1);
INSERT INTO cs2 VALUES
(1234,5678,0.12345678901234567890123456789018,2,1,1),
(1234,5678,0.1234567890123456789012345,2,1,1),
(12345678901234567890123,1234567890123456789012.9012345678,0.123456789012345678901234567890,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.1234567890123456783456789012345678,3,2,2),
(123456789123456789,5678,0.123456789012345673456789012345678,3,2,2),
(12345678901234567890901,1234567890123478901234.9012345678,0.1234567890123456789012345678908,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111112,1,1);
SELECT 't1_q1',d1,d5 FROM cs1 ORDER BY d1,d5;
t1_q1 d1 d5
t1_q1 NULL 1
t1_q1 NULL 2
t1_q1 -123456789123456789 2
t1_q1 0 1
t1_q1 0 2
t1_q1 1234 1
t1_q1 1234 1
t1_q1 1234 1
t1_q1 1234 1
t1_q1 1234 1
t1_q1 1234 2
t1_q1 12345678901234567890123 1
t1_q1 12345678901234567890901 2
SELECT 't1_q2',d2,d5 FROM cs1 ORDER BY d2,d5;
t1_q2 d2 d5
t1_q2 NULL 1
t1_q2 NULL 2
t1_q2 -5678.0000000000 1
t1_q2 -5678.0000000000 2
t1_q2 0.0000000000 1
t1_q2 0.0000000000 2
t1_q2 5678.0000000000 1
t1_q2 5678.0000000000 1
t1_q2 5678.0000000000 1
t1_q2 5678.0000000000 1
t1_q2 5678.0000000000 2
t1_q2 1234567890123456789012.9012345678 1
t1_q2 1234567890123478901234.9012345678 2
SELECT 't1_q3',d3,d5 FROM cs1 ORDER BY d3,d5;
t1_q3 d3 d5
t1_q3 NULL 1
t1_q3 NULL 2
t1_q3 -0.12345678901234567890123456789018000000 1
t1_q3 -0.12345678901234567890123456789018000000 1
t1_q3 -0.12345678901234567890123456789018000000 1
t1_q3 -0.12345678901234567890123456789018000000 1
t1_q3 0.00000000000000000000000000000000000000 1
t1_q3 0.00000000000000000000000000000000000000 2
t1_q3 0.12345678901234567345678901234567800000 2
t1_q3 0.12345678901234567834567890123456780000 2
t1_q3 0.12345678901234567890123450000000000000 1
t1_q3 0.12345678901234567890123456789000000000 1
t1_q3 0.12345678901234567890123456789080000000 2
SELECT 't2_q1',d1,d5 FROM cs1 ORDER BY d1,d5 LIMIT 1 OFFSET 2;
t2_q1 d1 d5
t2_q1 -123456789123456789 2
SELECT 't2_q2',d2,d5 FROM cs1 ORDER BY d2,d5 LIMIT 1 OFFSET 2;
t2_q2 d2 d5
t2_q2 -5678.0000000000 1
SELECT 't2_q3',d3,d5 FROM cs1 ORDER BY d3,d5 LIMIT 1 OFFSET 2;
t2_q3 d3 d5
t2_q3 -0.12345678901234567890123456789018000000 1
SELECT DISTINCT 't3_q1',d1,d5 FROM cs1 ORDER BY d1,d5;
t3_q1 d1 d5
t3_q1 NULL 1
t3_q1 NULL 2
t3_q1 -123456789123456789 2
t3_q1 0 1
t3_q1 0 2
t3_q1 1234 1
t3_q1 1234 2
t3_q1 12345678901234567890123 1
t3_q1 12345678901234567890901 2
SELECT DISTINCT 't3_q2',d2,d5 FROM cs1 ORDER BY d2,d5;
t3_q2 d2 d5
t3_q2 NULL 1
t3_q2 NULL 2
t3_q2 -5678.0000000000 1
t3_q2 -5678.0000000000 2
t3_q2 0.0000000000 1
t3_q2 0.0000000000 2
t3_q2 5678.0000000000 1
t3_q2 5678.0000000000 2
t3_q2 1234567890123456789012.9012345678 1
t3_q2 1234567890123478901234.9012345678 2
SELECT DISTINCT 't3_q3',d3,d5 FROM cs1 ORDER BY d3,d5;
t3_q3 d3 d5
t3_q3 NULL 1
t3_q3 NULL 2
t3_q3 -0.12345678901234567890123456789018000000 1
t3_q3 0.00000000000000000000000000000000000000 1
t3_q3 0.00000000000000000000000000000000000000 2
t3_q3 0.12345678901234567345678901234567800000 2
t3_q3 0.12345678901234567834567890123456780000 2
t3_q3 0.12345678901234567890123450000000000000 1
t3_q3 0.12345678901234567890123456789000000000 1
t3_q3 0.12345678901234567890123456789080000000 2
SELECT 't4_q1',d1,d5 FROM cs1 ORDER BY d1,d5 ASC;
t4_q1 d1 d5
t4_q1 NULL 1
t4_q1 NULL 2
t4_q1 -123456789123456789 2
t4_q1 0 1
t4_q1 0 2
t4_q1 1234 1
t4_q1 1234 1
t4_q1 1234 1
t4_q1 1234 1
t4_q1 1234 1
t4_q1 1234 2
t4_q1 12345678901234567890123 1
t4_q1 12345678901234567890901 2
SELECT 't4_q2',d2,d5 FROM cs1 ORDER BY d2,d5 ASC;
t4_q2 d2 d5
t4_q2 NULL 1
t4_q2 NULL 2
t4_q2 -5678.0000000000 1
t4_q2 -5678.0000000000 2
t4_q2 0.0000000000 1
t4_q2 0.0000000000 2
t4_q2 5678.0000000000 1
t4_q2 5678.0000000000 1
t4_q2 5678.0000000000 1
t4_q2 5678.0000000000 1
t4_q2 5678.0000000000 2
t4_q2 1234567890123456789012.9012345678 1
t4_q2 1234567890123478901234.9012345678 2
SELECT 't4_q3',d3,d5 FROM cs1 ORDER BY d3,d5 ASC;
t4_q3 d3 d5
t4_q3 NULL 1
t4_q3 NULL 2
t4_q3 -0.12345678901234567890123456789018000000 1
t4_q3 -0.12345678901234567890123456789018000000 1
t4_q3 -0.12345678901234567890123456789018000000 1
t4_q3 -0.12345678901234567890123456789018000000 1
t4_q3 0.00000000000000000000000000000000000000 1
t4_q3 0.00000000000000000000000000000000000000 2
t4_q3 0.12345678901234567345678901234567800000 2
t4_q3 0.12345678901234567834567890123456780000 2
t4_q3 0.12345678901234567890123450000000000000 1
t4_q3 0.12345678901234567890123456789000000000 1
t4_q3 0.12345678901234567890123456789080000000 2
SELECT 't4_q1',d1,d5 FROM cs1 ORDER BY d1,d5 DESC;
t4_q1 d1 d5
t4_q1 NULL 2
t4_q1 NULL 1
t4_q1 -123456789123456789 2
t4_q1 0 2
t4_q1 0 1
t4_q1 1234 2
t4_q1 1234 1
t4_q1 1234 1
t4_q1 1234 1
t4_q1 1234 1
t4_q1 1234 1
t4_q1 12345678901234567890123 1
t4_q1 12345678901234567890901 2
SELECT 't4_q2',d2,d5 FROM cs1 ORDER BY d2,d5 DESC;
t4_q2 d2 d5
t4_q2 NULL 2
t4_q2 NULL 1
t4_q2 -5678.0000000000 2
t4_q2 -5678.0000000000 1
t4_q2 0.0000000000 2
t4_q2 0.0000000000 1
t4_q2 5678.0000000000 2
t4_q2 5678.0000000000 1
t4_q2 5678.0000000000 1
t4_q2 5678.0000000000 1
t4_q2 5678.0000000000 1
t4_q2 1234567890123456789012.9012345678 1
t4_q2 1234567890123478901234.9012345678 2
SELECT 't4_q3',d3,d5 FROM cs1 ORDER BY d3,d5 DESC;
t4_q3 d3 d5
t4_q3 NULL 2
t4_q3 NULL 1
t4_q3 -0.12345678901234567890123456789018000000 1
t4_q3 -0.12345678901234567890123456789018000000 1
t4_q3 -0.12345678901234567890123456789018000000 1
t4_q3 -0.12345678901234567890123456789018000000 1
t4_q3 0.00000000000000000000000000000000000000 2
t4_q3 0.00000000000000000000000000000000000000 1
t4_q3 0.12345678901234567345678901234567800000 2
t4_q3 0.12345678901234567834567890123456780000 2
t4_q3 0.12345678901234567890123450000000000000 1
t4_q3 0.12345678901234567890123456789000000000 1
t4_q3 0.12345678901234567890123456789080000000 2
SELECT 't5_q1',d1,d5 FROM cs2 ORDER BY d1,d5;
t5_q1 d1 d5
t5_q1 NULL 1
t5_q1 NULL 2
t5_q1 0 1
t5_q1 0 2
t5_q1 1234 1
t5_q1 1234 1
t5_q1 1234 1
t5_q1 1234 1
t5_q1 1234 1
t5_q1 1234 2
t5_q1 123456789123456789 2
t5_q1 12345678901234567890123 1
t5_q1 12345678901234567890901 2
SELECT 't5_q2',d2,d5 FROM cs2 ORDER BY d2,d5;
t5_q2 d2 d5
t5_q2 NULL 1
t5_q2 NULL 2
t5_q2 0.0000000000 1
t5_q2 0.0000000000 2
t5_q2 5678.0000000000 1
t5_q2 5678.0000000000 1
t5_q2 5678.0000000000 1
t5_q2 5678.0000000000 1
t5_q2 5678.0000000000 1
t5_q2 5678.0000000000 2
t5_q2 5678.0000000000 2
t5_q2 1234567890123456789012.9012345678 1
t5_q2 1234567890123478901234.9012345678 2
SELECT 't5_q3',d3,d5 FROM cs2 ORDER BY d3,d5;
t5_q3 d3 d5
t5_q3 NULL 1
t5_q3 NULL 2
t5_q3 0.00000000000000000000000000000000000000 1
t5_q3 0.00000000000000000000000000000000000000 2
t5_q3 0.12345678901234567345678901234567800000 2
t5_q3 0.12345678901234567834567890123456780000 2
t5_q3 0.12345678901234567890123450000000000000 1
t5_q3 0.12345678901234567890123456789000000000 1
t5_q3 0.12345678901234567890123456789018000000 1
t5_q3 0.12345678901234567890123456789018000000 1
t5_q3 0.12345678901234567890123456789018000000 1
t5_q3 0.12345678901234567890123456789018000000 1
t5_q3 0.12345678901234567890123456789080000000 2
SELECT 't6_q1',d1,d5 FROM cs2 ORDER BY d1,d5 LIMIT 1 OFFSET 2;
t6_q1 d1 d5
t6_q1 0 1
SELECT 't6_q2',d2,d5 FROM cs2 ORDER BY d2,d5 LIMIT 1 OFFSET 2;
t6_q2 d2 d5
t6_q2 0.0000000000 1
SELECT 't6_q3',d3,d5 FROM cs2 ORDER BY d3,d5 LIMIT 1 OFFSET 2;
t6_q3 d3 d5
t6_q3 0.00000000000000000000000000000000000000 1
SELECT DISTINCT 't7_q1',d1,d5 FROM cs2 ORDER BY d1,d5;
t7_q1 d1 d5
t7_q1 NULL 1
t7_q1 NULL 2
t7_q1 0 1
t7_q1 0 2
t7_q1 1234 1
t7_q1 1234 2
t7_q1 123456789123456789 2
t7_q1 12345678901234567890123 1
t7_q1 12345678901234567890901 2
SELECT DISTINCT 't7_q2',d2,d5 FROM cs2 ORDER BY d2,d5;
t7_q2 d2 d5
t7_q2 NULL 1
t7_q2 NULL 2
t7_q2 0.0000000000 1
t7_q2 0.0000000000 2
t7_q2 5678.0000000000 1
t7_q2 5678.0000000000 2
t7_q2 1234567890123456789012.9012345678 1
t7_q2 1234567890123478901234.9012345678 2
SELECT DISTINCT 't7_q3',d3,d5 FROM cs2 ORDER BY d3,d5;
t7_q3 d3 d5
t7_q3 NULL 1
t7_q3 NULL 2
t7_q3 0.00000000000000000000000000000000000000 1
t7_q3 0.00000000000000000000000000000000000000 2
t7_q3 0.12345678901234567345678901234567800000 2
t7_q3 0.12345678901234567834567890123456780000 2
t7_q3 0.12345678901234567890123450000000000000 1
t7_q3 0.12345678901234567890123456789000000000 1
t7_q3 0.12345678901234567890123456789018000000 1
t7_q3 0.12345678901234567890123456789080000000 2
SELECT 't8_q1',d1,d5 FROM cs2 ORDER BY d1,d5 ASC;
t8_q1 d1 d5
t8_q1 NULL 1
t8_q1 NULL 2
t8_q1 0 1
t8_q1 0 2
t8_q1 1234 1
t8_q1 1234 1
t8_q1 1234 1
t8_q1 1234 1
t8_q1 1234 1
t8_q1 1234 2
t8_q1 123456789123456789 2
t8_q1 12345678901234567890123 1
t8_q1 12345678901234567890901 2
SELECT 't8_q2',d2,d5 FROM cs2 ORDER BY d2,d5 ASC;
t8_q2 d2 d5
t8_q2 NULL 1
t8_q2 NULL 2
t8_q2 0.0000000000 1
t8_q2 0.0000000000 2
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 2
t8_q2 5678.0000000000 2
t8_q2 1234567890123456789012.9012345678 1
t8_q2 1234567890123478901234.9012345678 2
SELECT 't8_q3',d3,d5 FROM cs2 ORDER BY d3,d5 ASC;
t8_q3 d3 d5
t8_q3 NULL 1
t8_q3 NULL 2
t8_q3 0.00000000000000000000000000000000000000 1
t8_q3 0.00000000000000000000000000000000000000 2
t8_q3 0.12345678901234567345678901234567800000 2
t8_q3 0.12345678901234567834567890123456780000 2
t8_q3 0.12345678901234567890123450000000000000 1
t8_q3 0.12345678901234567890123456789000000000 1
t8_q3 0.12345678901234567890123456789018000000 1
t8_q3 0.12345678901234567890123456789018000000 1
t8_q3 0.12345678901234567890123456789018000000 1
t8_q3 0.12345678901234567890123456789018000000 1
t8_q3 0.12345678901234567890123456789080000000 2
SELECT 't8_q1',d1,d5 FROM cs2 ORDER BY d1,d5 DESC;
t8_q1 d1 d5
t8_q1 NULL 2
t8_q1 NULL 1
t8_q1 0 2
t8_q1 0 1
t8_q1 1234 2
t8_q1 1234 1
t8_q1 1234 1
t8_q1 1234 1
t8_q1 1234 1
t8_q1 1234 1
t8_q1 123456789123456789 2
t8_q1 12345678901234567890123 1
t8_q1 12345678901234567890901 2
SELECT 't8_q2',d2,d5 FROM cs2 ORDER BY d2,d5 DESC;
t8_q2 d2 d5
t8_q2 NULL 2
t8_q2 NULL 1
t8_q2 0.0000000000 2
t8_q2 0.0000000000 1
t8_q2 5678.0000000000 2
t8_q2 5678.0000000000 2
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 1
t8_q2 5678.0000000000 1
t8_q2 1234567890123456789012.9012345678 1
t8_q2 1234567890123478901234.9012345678 2
SELECT 't8_q3',d3,d5 FROM cs2 ORDER BY d3,d5 DESC;
t8_q3 d3 d5
t8_q3 NULL 2
t8_q3 NULL 1
t8_q3 0.00000000000000000000000000000000000000 2
t8_q3 0.00000000000000000000000000000000000000 1
t8_q3 0.12345678901234567345678901234567800000 2
t8_q3 0.12345678901234567834567890123456780000 2
t8_q3 0.12345678901234567890123450000000000000 1
t8_q3 0.12345678901234567890123456789000000000 1
t8_q3 0.12345678901234567890123456789018000000 1
t8_q3 0.12345678901234567890123456789018000000 1
t8_q3 0.12345678901234567890123456789018000000 1
t8_q3 0.12345678901234567890123456789018000000 1
t8_q3 0.12345678901234567890123456789080000000 2
DROP DATABASE mcol641_sorting_db;

View File

@ -0,0 +1,73 @@
DROP DATABASE IF EXISTS mcol641_union_db;
CREATE DATABASE mcol641_union_db;
USE mcol641_union_db;
SET SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (125, 1.25, 0.125);
INSERT INTO cs1 VALUES (-125, -1.25, -0.125);
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998);
INSERT INTO cs1 values (99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999);
INSERT INTO cs1 values (-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998);
INSERT INTO cs1 values (-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999);
SELECT d1, d1, d2 FROM cs1 UNION SELECT d2, d3, d3 FROM cs1;
d1 d1 d2
125.0000000000 125.00000000000000000000000000000000000000 1.25000000000000000000000000000000000000
-125.0000000000 -125.00000000000000000000000000000000000000 -1.25000000000000000000000000000000000000
99999999999999999999999999999999999998.0000000000 999999999999999999999999999.99999999999999999999999999999999999999 999999999999999999999999999.99999999999999999999999999999999999999
99999999999999999999999999999999999999.0000000000 999999999999999999999999999.99999999999999999999999999999999999999 999999999999999999999999999.99999999999999999999999999999999999999
-99999999999999999999999999999999999998.0000000000 -999999999999999999999999999.99999999999999999999999999999999999999 -999999999999999999999999999.99999999999999999999999999999999999999
-99999999999999999999999999999999999999.0000000000 -999999999999999999999999999.99999999999999999999999999999999999999 -999999999999999999999999999.99999999999999999999999999999999999999
1.2500000000 0.12500000000000000000000000000000000000 0.12500000000000000000000000000000000000
-1.2500000000 -0.12500000000000000000000000000000000000 -0.12500000000000000000000000000000000000
9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 0.99999999999999999999999999999999999998
9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 0.99999999999999999999999999999999999999
-9999999999999999999999999999.9999999998 -0.99999999999999999999999999999999999998 -0.99999999999999999999999999999999999998
-9999999999999999999999999999.9999999999 -0.99999999999999999999999999999999999999 -0.99999999999999999999999999999999999999
SELECT d2, d3, d3 FROM cs1 UNION SELECT d1, d1, d2 FROM cs1;
d2 d3 d3
1.2500000000 0.12500000000000000000000000000000000000 0.12500000000000000000000000000000000000
-1.2500000000 -0.12500000000000000000000000000000000000 -0.12500000000000000000000000000000000000
9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 0.99999999999999999999999999999999999998
9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 0.99999999999999999999999999999999999999
-9999999999999999999999999999.9999999998 -0.99999999999999999999999999999999999998 -0.99999999999999999999999999999999999998
-9999999999999999999999999999.9999999999 -0.99999999999999999999999999999999999999 -0.99999999999999999999999999999999999999
125.0000000000 125.00000000000000000000000000000000000000 1.25000000000000000000000000000000000000
-125.0000000000 -125.00000000000000000000000000000000000000 -1.25000000000000000000000000000000000000
99999999999999999999999999999999999998.0000000000 999999999999999999999999999.99999999999999999999999999999999999999 999999999999999999999999999.99999999999999999999999999999999999999
99999999999999999999999999999999999999.0000000000 999999999999999999999999999.99999999999999999999999999999999999999 999999999999999999999999999.99999999999999999999999999999999999999
-99999999999999999999999999999999999998.0000000000 -999999999999999999999999999.99999999999999999999999999999999999999 -999999999999999999999999999.99999999999999999999999999999999999999
-99999999999999999999999999999999999999.0000000000 -999999999999999999999999999.99999999999999999999999999999999999999 -999999999999999999999999999.99999999999999999999999999999999999999
SELECT d1, d2, d3 FROM cs1 UNION SELECT d1, d2, d3 FROM cs1;
d1 d2 d3
125 1.2500000000 0.12500000000000000000000000000000000000
-125 -1.2500000000 -0.12500000000000000000000000000000000000
99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998
99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999
-99999999999999999999999999999999999998 -9999999999999999999999999999.9999999998 -0.99999999999999999999999999999999999998
-99999999999999999999999999999999999999 -9999999999999999999999999999.9999999999 -0.99999999999999999999999999999999999999
INSERT INTO cs2 VALUES (125, 1.25, 0.125);
INSERT INTO cs2 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998);
INSERT INTO cs2 values (99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999);
SELECT d1, d1, d2 FROM cs2 UNION SELECT d2, d3, d3 FROM cs2;
d1 d1 d2
125.0000000000 125.00000000000000000000000000000000000000 1.25000000000000000000000000000000000000
99999999999999999999999999999999999998.0000000000 999999999999999999999999999.99999999999999999999999999999999999999 999999999999999999999999999.99999999999999999999999999999999999999
99999999999999999999999999999999999999.0000000000 999999999999999999999999999.99999999999999999999999999999999999999 999999999999999999999999999.99999999999999999999999999999999999999
1.2500000000 0.12500000000000000000000000000000000000 0.12500000000000000000000000000000000000
9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 0.99999999999999999999999999999999999998
9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 0.99999999999999999999999999999999999999
SELECT d2, d3, d3 FROM cs2 UNION SELECT d1, d1, d2 FROM cs2;
d2 d3 d3
1.2500000000 0.12500000000000000000000000000000000000 0.12500000000000000000000000000000000000
9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 0.99999999999999999999999999999999999998
9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999 0.99999999999999999999999999999999999999
125.0000000000 125.00000000000000000000000000000000000000 1.25000000000000000000000000000000000000
99999999999999999999999999999999999998.0000000000 999999999999999999999999999.99999999999999999999999999999999999999 999999999999999999999999999.99999999999999999999999999999999999999
99999999999999999999999999999999999999.0000000000 999999999999999999999999999.99999999999999999999999999999999999999 999999999999999999999999999.99999999999999999999999999999999999999
SELECT d1, d2, d3 FROM cs2 UNION SELECT d1, d2, d3 FROM cs2;
d1 d2 d3
125 1.2500000000 0.12500000000000000000000000000000000000
99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998
99999999999999999999999999999999999999 9999999999999999999999999999.9999999999 0.99999999999999999999999999999999999999
DROP DATABASE mcol641_union_db;

View File

@ -0,0 +1,993 @@
DROP DATABASE IF EXISTS mcol641_update_db;
CREATE DATABASE mcol641_update_db;
USE mcol641_update_db;
DROP PROCEDURE IF EXISTS signedinsertproc;
Warnings:
Note 1305 PROCEDURE mcol641_update_db.signedinsertproc does not exist
DROP PROCEDURE IF EXISTS signeddeleteproc;
Warnings:
Note 1305 PROCEDURE mcol641_update_db.signeddeleteproc does not exist
DROP PROCEDURE IF EXISTS unsignedinsertproc;
Warnings:
Note 1305 PROCEDURE mcol641_update_db.unsignedinsertproc does not exist
DROP PROCEDURE IF EXISTS unsigneddeleteproc;
Warnings:
Note 1305 PROCEDURE mcol641_update_db.unsigneddeleteproc does not exist
CREATE PROCEDURE signedinsertproc ()
BEGIN
INSERT INTO cs1 VALUES (125, 125);
INSERT INTO cs1 VALUES (-125, -125);
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999998);
INSERT INTO cs1 values (99999999999999999999999999999999999999, 9999999999999999999);
INSERT INTO cs1 values (-99999999999999999999999999999999999998, -9999999999999999998);
INSERT INTO cs1 values (-99999999999999999999999999999999999999, -9999999999999999999);
INSERT INTO cs1 VALUES (0, 0);
INSERT INTO cs1 VALUES (NULL, NULL);
INSERT INTO cs2 VALUES (1.25, 1.25);
INSERT INTO cs2 VALUES (-1.25, -1.25);
INSERT INTO cs2 values (9999999999999999999999999999.9999999998, 999999999.9999999998);
INSERT INTO cs2 values (9999999999999999999999999999.9999999999, 999999999.9999999999);
INSERT INTO cs2 values (-9999999999999999999999999999.9999999998, -999999999.9999999998);
INSERT INTO cs2 values (-9999999999999999999999999999.9999999999, -999999999.9999999999);
INSERT INTO cs2 VALUES (1.1234567891, 1.1234567891);
INSERT INTO cs2 VALUES (1.9999999999, 1.9999999999);
INSERT INTO cs2 VALUES (-1.1234567891, -1.1234567891);
INSERT INTO cs2 VALUES (-1.9999999999, -1.9999999999);
INSERT INTO cs2 VALUES (1.0000000009, 1.0000000009);
INSERT INTO cs2 VALUES (-1.0000000009, -1.0000000009);
INSERT INTO cs2 VALUES (0, 0);
INSERT INTO cs2 VALUES (NULL, NULL);
INSERT INTO cs3 VALUES (0.125, 0.125);
INSERT INTO cs3 VALUES (-0.125, -0.125);
INSERT INTO cs3 values (0.99999999999999999999999999999999999998, 0.9999999999999999998);
INSERT INTO cs3 values (0.99999999999999999999999999999999999999, 0.9999999999999999999);
INSERT INTO cs3 values (-0.99999999999999999999999999999999999998, -0.9999999999999999998);
INSERT INTO cs3 values (-0.99999999999999999999999999999999999999, -0.9999999999999999999);
INSERT INTO cs3 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789);
INSERT INTO cs3 VALUES (0.19999999999999999999999999999999999999, 0.1999999999999999999);
INSERT INTO cs3 VALUES (-0.12345678901234567890123456789012345678, -0.1234567890123456789);
INSERT INTO cs3 VALUES (-0.19999999999999999999999999999999999999, -0.1999999999999999999);
INSERT INTO cs3 VALUES (0.00000000000000000000000000000000000009, 0.0000000000000000009);
INSERT INTO cs3 VALUES (-0.00000000000000000000000000000000000009, -0.0000000000000000009);
INSERT INTO cs3 VALUES (0, 0);
INSERT INTO cs3 VALUES (NULL, NULL);
END//
CREATE PROCEDURE unsignedinsertproc ()
BEGIN
INSERT INTO cs4 VALUES (125, 125);
INSERT INTO cs4 values (99999999999999999999999999999999999998, 9999999999999999998);
INSERT INTO cs4 values (99999999999999999999999999999999999999, 9999999999999999999);
INSERT INTO cs4 VALUES (0, 0);
INSERT INTO cs4 VALUES (NULL, NULL);
INSERT INTO cs5 VALUES (1.25, 1.25);
INSERT INTO cs5 values (9999999999999999999999999999.9999999998, 999999999.9999999998);
INSERT INTO cs5 values (9999999999999999999999999999.9999999999, 999999999.9999999999);
INSERT INTO cs5 VALUES (1.1234567891, 1.1234567891);
INSERT INTO cs5 VALUES (1.9999999999, 1.9999999999);
INSERT INTO cs5 VALUES (1.0000000009, 1.0000000009);
INSERT INTO cs5 VALUES (0, 0);
INSERT INTO cs5 VALUES (NULL, NULL);
INSERT INTO cs6 VALUES (0.125, 0.125);
INSERT INTO cs6 values (0.99999999999999999999999999999999999998, 0.9999999999999999998);
INSERT INTO cs6 values (0.99999999999999999999999999999999999999, 0.9999999999999999999);
INSERT INTO cs6 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789);
INSERT INTO cs6 VALUES (0.19999999999999999999999999999999999999, 0.1999999999999999999);
INSERT INTO cs6 VALUES (0.00000000000000000000000000000000000009, 0.0000000000000000009);
INSERT INTO cs6 VALUES (0, 0);
INSERT INTO cs6 VALUES (NULL, NULL);
END//
CREATE PROCEDURE signeddeleteproc ()
BEGIN
DELETE FROM cs1;
DELETE FROM cs2;
DELETE FROM cs3;
END//
CREATE PROCEDURE unsigneddeleteproc ()
BEGIN
DELETE FROM cs4;
DELETE FROM cs5;
DELETE FROM cs6;
END//
DROP TABLE IF EXISTS cs1;
Warnings:
Note 1051 Unknown table 'mcol641_update_db.cs1'
DROP TABLE IF EXISTS cs2;
Warnings:
Note 1051 Unknown table 'mcol641_update_db.cs2'
DROP TABLE IF EXISTS cs3;
Warnings:
Note 1051 Unknown table 'mcol641_update_db.cs3'
DROP TABLE IF EXISTS cs4;
Warnings:
Note 1051 Unknown table 'mcol641_update_db.cs4'
DROP TABLE IF EXISTS cs5;
Warnings:
Note 1051 Unknown table 'mcol641_update_db.cs5'
DROP TABLE IF EXISTS cs6;
Warnings:
Note 1051 Unknown table 'mcol641_update_db.cs6'
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(19)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38,10), d2 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(38,38), d2 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(19) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs5 (d1 DECIMAL(38,10) UNSIGNED, d2 DECIMAL(19,10) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs6 (d1 DECIMAL(38,38) UNSIGNED, d2 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789;
SELECT "signedtest1", d1, d2 FROM cs1;
signedtest1 d1 d2
signedtest1 12345678901234567890123456789012345678 1234567890123456789
signedtest1 12345678901234567890123456789012345678 1234567890123456789
signedtest1 12345678901234567890123456789012345678 1234567890123456789
signedtest1 12345678901234567890123456789012345678 1234567890123456789
signedtest1 12345678901234567890123456789012345678 1234567890123456789
signedtest1 12345678901234567890123456789012345678 1234567890123456789
signedtest1 12345678901234567890123456789012345678 1234567890123456789
signedtest1 12345678901234567890123456789012345678 1234567890123456789
SELECT "signedtest1", d1, d2 FROM cs2;
signedtest1 d1 d2
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
SELECT "signedtest1", d1, d2 FROM cs3;
signedtest1 d1 d2
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=0 WHERE d1=-99999999999999999999999999999999999998;
UPDATE cs1 SET d1=0, d2=123456789012345678 WHERE d2=9999999999999999999;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=0 WHERE d1=-9999999999999999999999999999.9999999998;
UPDATE cs2 SET d1=0, d2=123456789.012345678 WHERE d2=999999999.9999999999;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0 WHERE d1=-0.99999999999999999999999999999999999998;
UPDATE cs3 SET d1=0, d2=0.123456789012345678 WHERE d2=0.9999999999999999999;
SELECT "signedtest2", d1, d2 FROM cs1;
signedtest2 d1 d2
signedtest2 125 125
signedtest2 -125 -125
signedtest2 99999999999999999999999999999999999998 9999999999999999998
signedtest2 0 123456789012345678
signedtest2 12345678901234567890123456789012345678 0
signedtest2 -99999999999999999999999999999999999999 -9999999999999999999
signedtest2 0 0
signedtest2 NULL NULL
SELECT "signedtest2", d1, d2 FROM cs2;
signedtest2 d1 d2
signedtest2 1.2500000000 1.2500000000
signedtest2 -1.2500000000 -1.2500000000
signedtest2 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest2 0.0000000000 123456789.0123456780
signedtest2 1234567890123456789012345678.9012345678 0.0000000000
signedtest2 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest2 1.1234567891 1.1234567891
signedtest2 1.9999999999 1.9999999999
signedtest2 -1.1234567891 -1.1234567891
signedtest2 -1.9999999999 -1.9999999999
signedtest2 1.0000000009 1.0000000009
signedtest2 -1.0000000009 -1.0000000009
signedtest2 0.0000000000 0.0000000000
signedtest2 NULL NULL
SELECT "signedtest2", d1, d2 FROM cs3;
signedtest2 d1 d2
signedtest2 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest2 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest2 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest2 0.00000000000000000000000000000000000000 0.1234567890123456780
signedtest2 0.12345678901234567890123456789012345678 0.0000000000000000000
signedtest2 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest2 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest2 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest2 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest2 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest2 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest2 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest2 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest2 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 in (-99999999999999999999999999999999999998, 99999999999999999999999999999999999999);
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 in (-9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999999);
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 in (-0.99999999999999999999999999999999999998, 0.99999999999999999999999999999999999999);
SELECT "signedtest3", d1, d2 FROM cs1;
signedtest3 d1 d2
signedtest3 125 125
signedtest3 -125 -125
signedtest3 99999999999999999999999999999999999998 9999999999999999998
signedtest3 12345678901234567890123456789012345678 1234567890123456789
signedtest3 12345678901234567890123456789012345678 1234567890123456789
signedtest3 -99999999999999999999999999999999999999 -9999999999999999999
signedtest3 0 0
signedtest3 NULL NULL
SELECT "signedtest3", d1, d2 FROM cs2;
signedtest3 d1 d2
signedtest3 1.2500000000 1.2500000000
signedtest3 -1.2500000000 -1.2500000000
signedtest3 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest3 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest3 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest3 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest3 1.1234567891 1.1234567891
signedtest3 1.9999999999 1.9999999999
signedtest3 -1.1234567891 -1.1234567891
signedtest3 -1.9999999999 -1.9999999999
signedtest3 1.0000000009 1.0000000009
signedtest3 -1.0000000009 -1.0000000009
signedtest3 0.0000000000 0.0000000000
signedtest3 NULL NULL
SELECT "signedtest3", d1, d2 FROM cs3;
signedtest3 d1 d2
signedtest3 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest3 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest3 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest3 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest3 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest3 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest3 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest3 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest3 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest3 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest3 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest3 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest3 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest3 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 < -99999999999999999999999999999999999998 OR d2 > 9999999999999999998;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 < -9999999999999999999999999999.9999999998 OR d2 > 999999999.9999999998;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 < -0.99999999999999999999999999999999999998 OR d2 > 0.9999999999999999998;
SELECT "signedtest4a", d1, d2 FROM cs1;
signedtest4a d1 d2
signedtest4a 125 125
signedtest4a -125 -125
signedtest4a 99999999999999999999999999999999999998 9999999999999999998
signedtest4a 12345678901234567890123456789012345678 1234567890123456789
signedtest4a -99999999999999999999999999999999999998 -9999999999999999998
signedtest4a 12345678901234567890123456789012345678 1234567890123456789
signedtest4a 0 0
signedtest4a NULL NULL
SELECT "signedtest4a", d1, d2 FROM cs2;
signedtest4a d1 d2
signedtest4a 1.2500000000 1.2500000000
signedtest4a -1.2500000000 -1.2500000000
signedtest4a 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest4a 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest4a -9999999999999999999999999999.9999999998 -999999999.9999999998
signedtest4a 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest4a 1.1234567891 1.1234567891
signedtest4a 1.9999999999 1.9999999999
signedtest4a -1.1234567891 -1.1234567891
signedtest4a -1.9999999999 -1.9999999999
signedtest4a 1.0000000009 1.0000000009
signedtest4a -1.0000000009 -1.0000000009
signedtest4a 0.0000000000 0.0000000000
signedtest4a NULL NULL
SELECT "signedtest4a", d1, d2 FROM cs3;
signedtest4a d1 d2
signedtest4a 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest4a -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest4a 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest4a 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4a -0.99999999999999999999999999999999999998 -0.9999999999999999998
signedtest4a 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4a 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4a 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest4a -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest4a -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest4a 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest4a -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest4a 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest4a NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 <= -99999999999999999999999999999999999998 OR d2 >= 9999999999999999998;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 <= -9999999999999999999999999999.9999999998 OR d2 >= 999999999.9999999998;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 <= -0.99999999999999999999999999999999999998 OR d2 >= 0.9999999999999999998;
SELECT "signedtest4b", d1, d2 FROM cs1;
signedtest4b d1 d2
signedtest4b 125 125
signedtest4b -125 -125
signedtest4b 12345678901234567890123456789012345678 1234567890123456789
signedtest4b 12345678901234567890123456789012345678 1234567890123456789
signedtest4b 12345678901234567890123456789012345678 1234567890123456789
signedtest4b 12345678901234567890123456789012345678 1234567890123456789
signedtest4b 0 0
signedtest4b NULL NULL
SELECT "signedtest4b", d1, d2 FROM cs2;
signedtest4b d1 d2
signedtest4b 1.2500000000 1.2500000000
signedtest4b -1.2500000000 -1.2500000000
signedtest4b 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest4b 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest4b 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest4b 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest4b 1.1234567891 1.1234567891
signedtest4b 1.9999999999 1.9999999999
signedtest4b -1.1234567891 -1.1234567891
signedtest4b -1.9999999999 -1.9999999999
signedtest4b 1.0000000009 1.0000000009
signedtest4b -1.0000000009 -1.0000000009
signedtest4b 0.0000000000 0.0000000000
signedtest4b NULL NULL
SELECT "signedtest4b", d1, d2 FROM cs3;
signedtest4b d1 d2
signedtest4b 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest4b -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest4b 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4b 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4b 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4b 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4b 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest4b 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest4b -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest4b -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest4b 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest4b -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest4b 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest4b NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 is NULL;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 is NULL;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 is NULL;
SELECT "signedtest5", d1, d2 FROM cs1;
signedtest5 d1 d2
signedtest5 125 125
signedtest5 -125 -125
signedtest5 99999999999999999999999999999999999998 9999999999999999998
signedtest5 99999999999999999999999999999999999999 9999999999999999999
signedtest5 -99999999999999999999999999999999999998 -9999999999999999998
signedtest5 -99999999999999999999999999999999999999 -9999999999999999999
signedtest5 0 0
signedtest5 12345678901234567890123456789012345678 1234567890123456789
SELECT "signedtest5", d1, d2 FROM cs2;
signedtest5 d1 d2
signedtest5 1.2500000000 1.2500000000
signedtest5 -1.2500000000 -1.2500000000
signedtest5 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest5 9999999999999999999999999999.9999999999 999999999.9999999999
signedtest5 -9999999999999999999999999999.9999999998 -999999999.9999999998
signedtest5 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest5 1.1234567891 1.1234567891
signedtest5 1.9999999999 1.9999999999
signedtest5 -1.1234567891 -1.1234567891
signedtest5 -1.9999999999 -1.9999999999
signedtest5 1.0000000009 1.0000000009
signedtest5 -1.0000000009 -1.0000000009
signedtest5 0.0000000000 0.0000000000
signedtest5 1234567890123456789012345678.9012345678 123456789.0123456789
SELECT "signedtest5", d1, d2 FROM cs3;
signedtest5 d1 d2
signedtest5 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest5 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest5 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest5 0.99999999999999999999999999999999999999 0.9999999999999999999
signedtest5 -0.99999999999999999999999999999999999998 -0.9999999999999999998
signedtest5 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest5 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest5 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest5 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest5 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest5 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest5 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest5 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest5 0.12345678901234567890123456789012345678 0.1234567890123456789
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 != 125;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 != 1.25;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 != 0.125;
SELECT "signedtest6", d1, d2 FROM cs1;
signedtest6 d1 d2
signedtest6 125 125
signedtest6 12345678901234567890123456789012345678 1234567890123456789
signedtest6 12345678901234567890123456789012345678 1234567890123456789
signedtest6 12345678901234567890123456789012345678 1234567890123456789
signedtest6 12345678901234567890123456789012345678 1234567890123456789
signedtest6 12345678901234567890123456789012345678 1234567890123456789
signedtest6 12345678901234567890123456789012345678 1234567890123456789
signedtest6 NULL NULL
SELECT "signedtest6", d1, d2 FROM cs2;
signedtest6 d1 d2
signedtest6 1.2500000000 1.2500000000
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest6 NULL NULL
SELECT "signedtest6", d1, d2 FROM cs3;
signedtest6 d1 d2
signedtest6 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest6 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d2=d1 WHERE d1 = d2;
UPDATE cs2 SET d2=d1 WHERE d1 = d2;
UPDATE cs3 SET d2=d1 WHERE d1 = d2;
SELECT "signedtest7", d1, d2 FROM cs1;
signedtest7 d1 d2
signedtest7 125 125
signedtest7 -125 -125
signedtest7 99999999999999999999999999999999999998 9999999999999999998
signedtest7 99999999999999999999999999999999999999 9999999999999999999
signedtest7 -99999999999999999999999999999999999998 -9999999999999999998
signedtest7 -99999999999999999999999999999999999999 -9999999999999999999
signedtest7 0 0
signedtest7 NULL NULL
SELECT "signedtest7", d1, d2 FROM cs2;
signedtest7 d1 d2
signedtest7 1.2500000000 1.2500000000
signedtest7 -1.2500000000 -1.2500000000
signedtest7 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest7 9999999999999999999999999999.9999999999 999999999.9999999999
signedtest7 -9999999999999999999999999999.9999999998 -999999999.9999999998
signedtest7 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest7 1.1234567891 1.1234567891
signedtest7 1.9999999999 1.9999999999
signedtest7 -1.1234567891 -1.1234567891
signedtest7 -1.9999999999 -1.9999999999
signedtest7 1.0000000009 1.0000000009
signedtest7 -1.0000000009 -1.0000000009
signedtest7 0.0000000000 0.0000000000
signedtest7 NULL NULL
SELECT "signedtest7", d1, d2 FROM cs3;
signedtest7 d1 d2
signedtest7 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest7 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest7 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest7 0.99999999999999999999999999999999999999 0.9999999999999999999
signedtest7 -0.99999999999999999999999999999999999998 -0.9999999999999999998
signedtest7 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest7 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest7 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest7 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest7 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest7 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest7 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest7 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest7 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=d2 WHERE d1 != d2;
UPDATE cs2 SET d1=d2 WHERE d1 != d2;
UPDATE cs3 SET d1=d2 WHERE d1 != d2;
SELECT "signedtest8", d1, d2 FROM cs1;
signedtest8 d1 d2
signedtest8 125 125
signedtest8 -125 -125
signedtest8 9999999999999999998 9999999999999999998
signedtest8 9999999999999999999 9999999999999999999
signedtest8 -9999999999999999998 -9999999999999999998
signedtest8 -9999999999999999999 -9999999999999999999
signedtest8 0 0
signedtest8 NULL NULL
SELECT "signedtest8", d1, d2 FROM cs2;
signedtest8 d1 d2
signedtest8 1.2500000000 1.2500000000
signedtest8 -1.2500000000 -1.2500000000
signedtest8 999999999.9999999998 999999999.9999999998
signedtest8 999999999.9999999999 999999999.9999999999
signedtest8 -999999999.9999999998 -999999999.9999999998
signedtest8 -999999999.9999999999 -999999999.9999999999
signedtest8 1.1234567891 1.1234567891
signedtest8 1.9999999999 1.9999999999
signedtest8 -1.1234567891 -1.1234567891
signedtest8 -1.9999999999 -1.9999999999
signedtest8 1.0000000009 1.0000000009
signedtest8 -1.0000000009 -1.0000000009
signedtest8 0.0000000000 0.0000000000
signedtest8 NULL NULL
SELECT "signedtest8", d1, d2 FROM cs3;
signedtest8 d1 d2
signedtest8 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest8 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest8 0.99999999999999999980000000000000000000 0.9999999999999999998
signedtest8 0.99999999999999999990000000000000000000 0.9999999999999999999
signedtest8 -0.99999999999999999980000000000000000000 -0.9999999999999999998
signedtest8 -0.99999999999999999990000000000000000000 -0.9999999999999999999
signedtest8 0.12345678901234567890000000000000000000 0.1234567890123456789
signedtest8 0.19999999999999999990000000000000000000 0.1999999999999999999
signedtest8 -0.12345678901234567890000000000000000000 -0.1234567890123456789
signedtest8 -0.19999999999999999990000000000000000000 -0.1999999999999999999
signedtest8 0.00000000000000000090000000000000000000 0.0000000000000000009
signedtest8 -0.00000000000000000090000000000000000000 -0.0000000000000000009
signedtest8 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest8 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 < d2;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 < d2;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 < d2;
SELECT "signedtest9", d1, d2 FROM cs1;
signedtest9 d1 d2
signedtest9 125 125
signedtest9 -125 -125
signedtest9 99999999999999999999999999999999999998 9999999999999999998
signedtest9 99999999999999999999999999999999999999 9999999999999999999
signedtest9 12345678901234567890123456789012345678 1234567890123456789
signedtest9 12345678901234567890123456789012345678 1234567890123456789
signedtest9 0 0
signedtest9 NULL NULL
SELECT "signedtest9", d1, d2 FROM cs2;
signedtest9 d1 d2
signedtest9 1.2500000000 1.2500000000
signedtest9 -1.2500000000 -1.2500000000
signedtest9 9999999999999999999999999999.9999999998 999999999.9999999998
signedtest9 9999999999999999999999999999.9999999999 999999999.9999999999
signedtest9 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest9 1234567890123456789012345678.9012345678 123456789.0123456789
signedtest9 1.1234567891 1.1234567891
signedtest9 1.9999999999 1.9999999999
signedtest9 -1.1234567891 -1.1234567891
signedtest9 -1.9999999999 -1.9999999999
signedtest9 1.0000000009 1.0000000009
signedtest9 -1.0000000009 -1.0000000009
signedtest9 0.0000000000 0.0000000000
signedtest9 NULL NULL
SELECT "signedtest9", d1, d2 FROM cs3;
signedtest9 d1 d2
signedtest9 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest9 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest9 0.99999999999999999999999999999999999998 0.9999999999999999998
signedtest9 0.99999999999999999999999999999999999999 0.9999999999999999999
signedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest9 0.19999999999999999999999999999999999999 0.1999999999999999999
signedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
signedtest9 -0.00000000000000000000000000000000000009 -0.0000000000000000009
signedtest9 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest9 NULL NULL
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=d2 WHERE d1 > d2;
UPDATE cs2 SET d1=d2 WHERE d1 > d2;
UPDATE cs3 SET d1=d2 WHERE d1 > d2;
SELECT "signedtest10", d1, d2 FROM cs1;
signedtest10 d1 d2
signedtest10 125 125
signedtest10 -125 -125
signedtest10 9999999999999999998 9999999999999999998
signedtest10 9999999999999999999 9999999999999999999
signedtest10 -99999999999999999999999999999999999998 -9999999999999999998
signedtest10 -99999999999999999999999999999999999999 -9999999999999999999
signedtest10 0 0
signedtest10 NULL NULL
SELECT "signedtest10", d1, d2 FROM cs2;
signedtest10 d1 d2
signedtest10 1.2500000000 1.2500000000
signedtest10 -1.2500000000 -1.2500000000
signedtest10 999999999.9999999998 999999999.9999999998
signedtest10 999999999.9999999999 999999999.9999999999
signedtest10 -9999999999999999999999999999.9999999998 -999999999.9999999998
signedtest10 -9999999999999999999999999999.9999999999 -999999999.9999999999
signedtest10 1.1234567891 1.1234567891
signedtest10 1.9999999999 1.9999999999
signedtest10 -1.1234567891 -1.1234567891
signedtest10 -1.9999999999 -1.9999999999
signedtest10 1.0000000009 1.0000000009
signedtest10 -1.0000000009 -1.0000000009
signedtest10 0.0000000000 0.0000000000
signedtest10 NULL NULL
SELECT "signedtest10", d1, d2 FROM cs3;
signedtest10 d1 d2
signedtest10 0.12500000000000000000000000000000000000 0.1250000000000000000
signedtest10 -0.12500000000000000000000000000000000000 -0.1250000000000000000
signedtest10 0.99999999999999999980000000000000000000 0.9999999999999999998
signedtest10 0.99999999999999999990000000000000000000 0.9999999999999999999
signedtest10 -0.99999999999999999999999999999999999998 -0.9999999999999999998
signedtest10 -0.99999999999999999999999999999999999999 -0.9999999999999999999
signedtest10 0.12345678901234567890000000000000000000 0.1234567890123456789
signedtest10 0.19999999999999999990000000000000000000 0.1999999999999999999
signedtest10 -0.12345678901234567890123456789012345678 -0.1234567890123456789
signedtest10 -0.19999999999999999999999999999999999999 -0.1999999999999999999
signedtest10 0.00000000000000000000000000000000000009 0.0000000000000000009
signedtest10 -0.00000000000000000090000000000000000000 -0.0000000000000000009
signedtest10 0.00000000000000000000000000000000000000 0.0000000000000000000
signedtest10 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789;
SELECT "unsignedtest1", d1, d2 FROM cs4;
unsignedtest1 d1 d2
unsignedtest1 12345678901234567890123456789012345678 1234567890123456789
unsignedtest1 12345678901234567890123456789012345678 1234567890123456789
unsignedtest1 12345678901234567890123456789012345678 1234567890123456789
unsignedtest1 12345678901234567890123456789012345678 1234567890123456789
unsignedtest1 12345678901234567890123456789012345678 1234567890123456789
SELECT "unsignedtest1", d1, d2 FROM cs5;
unsignedtest1 d1 d2
unsignedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest1 1234567890123456789012345678.9012345678 123456789.0123456789
SELECT "unsignedtest1", d1, d2 FROM cs6;
unsignedtest1 d1 d2
unsignedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest1 0.12345678901234567890123456789012345678 0.1234567890123456789
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=0 WHERE d1=99999999999999999999999999999999999998;
UPDATE cs4 SET d1=0, d2=123456789012345678 WHERE d2=9999999999999999999;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=0 WHERE d1=9999999999999999999999999999.9999999998;
UPDATE cs5 SET d1=0, d2=123456789.012345678 WHERE d2=999999999.9999999999;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0 WHERE d1=0.99999999999999999999999999999999999998;
UPDATE cs6 SET d1=0, d2=0.123456789012345678 WHERE d2=0.9999999999999999999;
SELECT "unsignedtest2", d1, d2 FROM cs4;
unsignedtest2 d1 d2
unsignedtest2 125 125
unsignedtest2 12345678901234567890123456789012345678 0
unsignedtest2 0 123456789012345678
unsignedtest2 0 0
unsignedtest2 NULL NULL
SELECT "unsignedtest2", d1, d2 FROM cs5;
unsignedtest2 d1 d2
unsignedtest2 1.2500000000 1.2500000000
unsignedtest2 1234567890123456789012345678.9012345678 0.0000000000
unsignedtest2 0.0000000000 123456789.0123456780
unsignedtest2 1.1234567891 1.1234567891
unsignedtest2 1.9999999999 1.9999999999
unsignedtest2 1.0000000009 1.0000000009
unsignedtest2 0.0000000000 0.0000000000
unsignedtest2 NULL NULL
SELECT "unsignedtest2", d1, d2 FROM cs6;
unsignedtest2 d1 d2
unsignedtest2 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest2 0.12345678901234567890123456789012345678 0.0000000000000000000
unsignedtest2 0.00000000000000000000000000000000000000 0.1234567890123456780
unsignedtest2 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest2 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest2 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest2 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest2 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 in (99999999999999999999999999999999999998, 99999999999999999999999999999999999999);
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 in (9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999999);
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 in (0.99999999999999999999999999999999999998, 0.99999999999999999999999999999999999999);
SELECT "unsignedtest3", d1, d2 FROM cs4;
unsignedtest3 d1 d2
unsignedtest3 125 125
unsignedtest3 12345678901234567890123456789012345678 1234567890123456789
unsignedtest3 12345678901234567890123456789012345678 1234567890123456789
unsignedtest3 0 0
unsignedtest3 NULL NULL
SELECT "unsignedtest3", d1, d2 FROM cs5;
unsignedtest3 d1 d2
unsignedtest3 1.2500000000 1.2500000000
unsignedtest3 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest3 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest3 1.1234567891 1.1234567891
unsignedtest3 1.9999999999 1.9999999999
unsignedtest3 1.0000000009 1.0000000009
unsignedtest3 0.0000000000 0.0000000000
unsignedtest3 NULL NULL
SELECT "unsignedtest3", d1, d2 FROM cs6;
unsignedtest3 d1 d2
unsignedtest3 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest3 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest3 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest3 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest3 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest3 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest3 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest3 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 > 99999999999999999999999999999999999998 OR d2 > 9999999999999999998;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 > 9999999999999999999999999999.9999999998 OR d2 > 999999999.9999999998;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 > 0.99999999999999999999999999999999999998 OR d2 > 0.9999999999999999998;
SELECT "unsignedtest4a", d1, d2 FROM cs4;
unsignedtest4a d1 d2
unsignedtest4a 125 125
unsignedtest4a 99999999999999999999999999999999999998 9999999999999999998
unsignedtest4a 12345678901234567890123456789012345678 1234567890123456789
unsignedtest4a 0 0
unsignedtest4a NULL NULL
SELECT "unsignedtest4a", d1, d2 FROM cs5;
unsignedtest4a d1 d2
unsignedtest4a 1.2500000000 1.2500000000
unsignedtest4a 9999999999999999999999999999.9999999998 999999999.9999999998
unsignedtest4a 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest4a 1.1234567891 1.1234567891
unsignedtest4a 1.9999999999 1.9999999999
unsignedtest4a 1.0000000009 1.0000000009
unsignedtest4a 0.0000000000 0.0000000000
unsignedtest4a NULL NULL
SELECT "unsignedtest4a", d1, d2 FROM cs6;
unsignedtest4a d1 d2
unsignedtest4a 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest4a 0.99999999999999999999999999999999999998 0.9999999999999999998
unsignedtest4a 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest4a 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest4a 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest4a 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest4a 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest4a NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 >= 99999999999999999999999999999999999998 OR d2 >= 9999999999999999998;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 >= 9999999999999999999999999999.9999999998 OR d2 >= 999999999.9999999998;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 >= 0.99999999999999999999999999999999999998 OR d2 >= 0.9999999999999999998;
SELECT "unsignedtest4b", d1, d2 FROM cs4;
unsignedtest4b d1 d2
unsignedtest4b 125 125
unsignedtest4b 12345678901234567890123456789012345678 1234567890123456789
unsignedtest4b 12345678901234567890123456789012345678 1234567890123456789
unsignedtest4b 0 0
unsignedtest4b NULL NULL
SELECT "unsignedtest4b", d1, d2 FROM cs5;
unsignedtest4b d1 d2
unsignedtest4b 1.2500000000 1.2500000000
unsignedtest4b 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest4b 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest4b 1.1234567891 1.1234567891
unsignedtest4b 1.9999999999 1.9999999999
unsignedtest4b 1.0000000009 1.0000000009
unsignedtest4b 0.0000000000 0.0000000000
unsignedtest4b NULL NULL
SELECT "unsignedtest4b", d1, d2 FROM cs6;
unsignedtest4b d1 d2
unsignedtest4b 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest4b 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest4b 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest4b 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest4b 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest4b 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest4b 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest4b NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 is NULL;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 is NULL;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 is NULL;
SELECT "unsignedtest5", d1, d2 FROM cs4;
unsignedtest5 d1 d2
unsignedtest5 125 125
unsignedtest5 99999999999999999999999999999999999998 9999999999999999998
unsignedtest5 99999999999999999999999999999999999999 9999999999999999999
unsignedtest5 0 0
unsignedtest5 12345678901234567890123456789012345678 1234567890123456789
SELECT "unsignedtest5", d1, d2 FROM cs5;
unsignedtest5 d1 d2
unsignedtest5 1.2500000000 1.2500000000
unsignedtest5 9999999999999999999999999999.9999999998 999999999.9999999998
unsignedtest5 9999999999999999999999999999.9999999999 999999999.9999999999
unsignedtest5 1.1234567891 1.1234567891
unsignedtest5 1.9999999999 1.9999999999
unsignedtest5 1.0000000009 1.0000000009
unsignedtest5 0.0000000000 0.0000000000
unsignedtest5 1234567890123456789012345678.9012345678 123456789.0123456789
SELECT "unsignedtest5", d1, d2 FROM cs6;
unsignedtest5 d1 d2
unsignedtest5 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest5 0.99999999999999999999999999999999999998 0.9999999999999999998
unsignedtest5 0.99999999999999999999999999999999999999 0.9999999999999999999
unsignedtest5 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest5 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest5 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest5 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest5 0.12345678901234567890123456789012345678 0.1234567890123456789
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 != 125;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 != 1.25;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 != 0.125;
SELECT "unsignedtest6", d1, d2 FROM cs4;
unsignedtest6 d1 d2
unsignedtest6 125 125
unsignedtest6 12345678901234567890123456789012345678 1234567890123456789
unsignedtest6 12345678901234567890123456789012345678 1234567890123456789
unsignedtest6 12345678901234567890123456789012345678 1234567890123456789
unsignedtest6 NULL NULL
SELECT "unsignedtest6", d1, d2 FROM cs5;
unsignedtest6 d1 d2
unsignedtest6 1.2500000000 1.2500000000
unsignedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest6 1234567890123456789012345678.9012345678 123456789.0123456789
unsignedtest6 NULL NULL
SELECT "unsignedtest6", d1, d2 FROM cs6;
unsignedtest6 d1 d2
unsignedtest6 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest6 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest6 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d2=d1 WHERE d1 = d2;
UPDATE cs5 SET d2=d1 WHERE d1 = d2;
UPDATE cs6 SET d2=d1 WHERE d1 = d2;
SELECT "unsignedtest7", d1, d2 FROM cs4;
unsignedtest7 d1 d2
unsignedtest7 125 125
unsignedtest7 99999999999999999999999999999999999998 9999999999999999998
unsignedtest7 99999999999999999999999999999999999999 9999999999999999999
unsignedtest7 0 0
unsignedtest7 NULL NULL
SELECT "unsignedtest7", d1, d2 FROM cs5;
unsignedtest7 d1 d2
unsignedtest7 1.2500000000 1.2500000000
unsignedtest7 9999999999999999999999999999.9999999998 999999999.9999999998
unsignedtest7 9999999999999999999999999999.9999999999 999999999.9999999999
unsignedtest7 1.1234567891 1.1234567891
unsignedtest7 1.9999999999 1.9999999999
unsignedtest7 1.0000000009 1.0000000009
unsignedtest7 0.0000000000 0.0000000000
unsignedtest7 NULL NULL
SELECT "unsignedtest7", d1, d2 FROM cs6;
unsignedtest7 d1 d2
unsignedtest7 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest7 0.99999999999999999999999999999999999998 0.9999999999999999998
unsignedtest7 0.99999999999999999999999999999999999999 0.9999999999999999999
unsignedtest7 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest7 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest7 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest7 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest7 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=d2 WHERE d1 != d2;
UPDATE cs5 SET d1=d2 WHERE d1 != d2;
UPDATE cs6 SET d1=d2 WHERE d1 != d2;
SELECT "unsignedtest8", d1, d2 FROM cs4;
unsignedtest8 d1 d2
unsignedtest8 125 125
unsignedtest8 9999999999999999998 9999999999999999998
unsignedtest8 9999999999999999999 9999999999999999999
unsignedtest8 0 0
unsignedtest8 NULL NULL
SELECT "unsignedtest8", d1, d2 FROM cs5;
unsignedtest8 d1 d2
unsignedtest8 1.2500000000 1.2500000000
unsignedtest8 999999999.9999999998 999999999.9999999998
unsignedtest8 999999999.9999999999 999999999.9999999999
unsignedtest8 1.1234567891 1.1234567891
unsignedtest8 1.9999999999 1.9999999999
unsignedtest8 1.0000000009 1.0000000009
unsignedtest8 0.0000000000 0.0000000000
unsignedtest8 NULL NULL
SELECT "unsignedtest8", d1, d2 FROM cs6;
unsignedtest8 d1 d2
unsignedtest8 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest8 0.99999999999999999980000000000000000000 0.9999999999999999998
unsignedtest8 0.99999999999999999990000000000000000000 0.9999999999999999999
unsignedtest8 0.12345678901234567890000000000000000000 0.1234567890123456789
unsignedtest8 0.19999999999999999990000000000000000000 0.1999999999999999999
unsignedtest8 0.00000000000000000090000000000000000000 0.0000000000000000009
unsignedtest8 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest8 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 < d2;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 < d2;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 < d2;
SELECT "unsignedtest9", d1, d2 FROM cs4;
unsignedtest9 d1 d2
unsignedtest9 125 125
unsignedtest9 99999999999999999999999999999999999998 9999999999999999998
unsignedtest9 99999999999999999999999999999999999999 9999999999999999999
unsignedtest9 0 0
unsignedtest9 NULL NULL
SELECT "unsignedtest9", d1, d2 FROM cs5;
unsignedtest9 d1 d2
unsignedtest9 1.2500000000 1.2500000000
unsignedtest9 9999999999999999999999999999.9999999998 999999999.9999999998
unsignedtest9 9999999999999999999999999999.9999999999 999999999.9999999999
unsignedtest9 1.1234567891 1.1234567891
unsignedtest9 1.9999999999 1.9999999999
unsignedtest9 1.0000000009 1.0000000009
unsignedtest9 0.0000000000 0.0000000000
unsignedtest9 NULL NULL
SELECT "unsignedtest9", d1, d2 FROM cs6;
unsignedtest9 d1 d2
unsignedtest9 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest9 0.99999999999999999999999999999999999998 0.9999999999999999998
unsignedtest9 0.99999999999999999999999999999999999999 0.9999999999999999999
unsignedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest9 0.19999999999999999999999999999999999999 0.1999999999999999999
unsignedtest9 0.12345678901234567890123456789012345678 0.1234567890123456789
unsignedtest9 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest9 NULL NULL
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=d2 WHERE d1 > d2;
UPDATE cs5 SET d1=d2 WHERE d1 > d2;
UPDATE cs6 SET d1=d2 WHERE d1 > d2;
SELECT "unsignedtest10a", d1, d2 FROM cs4;
unsignedtest10a d1 d2
unsignedtest10a 125 125
unsignedtest10a 9999999999999999998 9999999999999999998
unsignedtest10a 9999999999999999999 9999999999999999999
unsignedtest10a 0 0
unsignedtest10a NULL NULL
SELECT "unsignedtest10a", d1, d2 FROM cs5;
unsignedtest10a d1 d2
unsignedtest10a 1.2500000000 1.2500000000
unsignedtest10a 999999999.9999999998 999999999.9999999998
unsignedtest10a 999999999.9999999999 999999999.9999999999
unsignedtest10a 1.1234567891 1.1234567891
unsignedtest10a 1.9999999999 1.9999999999
unsignedtest10a 1.0000000009 1.0000000009
unsignedtest10a 0.0000000000 0.0000000000
unsignedtest10a NULL NULL
SELECT "unsignedtest10a", d1, d2 FROM cs6;
unsignedtest10a d1 d2
unsignedtest10a 0.12500000000000000000000000000000000000 0.1250000000000000000
unsignedtest10a 0.99999999999999999980000000000000000000 0.9999999999999999998
unsignedtest10a 0.99999999999999999990000000000000000000 0.9999999999999999999
unsignedtest10a 0.12345678901234567890000000000000000000 0.1234567890123456789
unsignedtest10a 0.19999999999999999990000000000000000000 0.1999999999999999999
unsignedtest10a 0.00000000000000000000000000000000000009 0.0000000000000000009
unsignedtest10a 0.00000000000000000000000000000000000000 0.0000000000000000000
unsignedtest10a NULL NULL
DROP PROCEDURE IF EXISTS signedinsertproc;
DROP PROCEDURE IF EXISTS signeddeleteproc;
DROP PROCEDURE IF EXISTS unsignedinsertproc;
DROP PROCEDURE IF EXISTS unsigneddeleteproc;
DROP DATABASE mcol641_update_db;

View File

@ -0,0 +1,223 @@
#source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS test_mcol641_aggregate;
--enable_warnings
CREATE DATABASE test_mcol641_aggregate;
USE test_mcol641_aggregate;
--disable_warnings
DROP TABLE IF EXISTS cs1;
DROP TABLE IF EXISTS cs2;
DROP TABLE IF EXISTS cs3;
DROP TABLE IF EXISTS cs4;
DROP TABLE IF EXISTS cs5;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 DECIMAL(38),d5 DECIMAL(38),i1 INT) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED, d4 DECIMAL(38),d5 DECIMAL(38),i1 INT) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(19), d2 DECIMAL(19,10), d3 DECIMAL(19,19), d4 DECIMAL(19),d5 DECIMAL(19),i1 INT) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(19) UNSIGNED, d2 DECIMAL(19,10) UNSIGNED, d3 DECIMAL(19,19) UNSIGNED, d4 DECIMAL(19) UNSIGNED,d5 DECIMAL(19),i1 INT) ENGINE=columnstore;
CREATE TABLE cs5(d DECIMAL(25,19)) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(1234,5678,-0.12345678901234567890123456789018,2,1,1),
(1234,-5678,0.1234567890123456789012345,2,1,1),
(12345678901234567890123,1234567890123456789012.9012345678,0.123456789012345678901234567890,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.1234567890123456783456789012345678,3,2,2),
(-123456789123456789,-5678,0.123456789012345673456789012345678,3,2,2),
(12345678901234567890901,1234567890123478901234.9012345678,0.1234567890123456789012345678908,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111112,1,1);
INSERT INTO cs2 VALUES
(1234,5678,0.12345678901234567890123456789018,2,1,1),
(1234,5678,0.1234567890123456789012345,2,1,1),
(12345678901234567890123,1234567890123456789012.9012345678,0.123456789012345678901234567890,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.1234567890123456783456789012345678,3,2,2),
(123456789123456789123,5678,0.123456789012345673456789012345678,3,2,2),
(12345678901234567890901,1234567890123478901234.9012345678,0.1234567890123456789012345678908,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111112,1,1);
INSERT INTO cs3 VALUES
(1234,5678,-0.12345678901234,2,1,1),
(1234,-5678,0.12345678901234,2,1,1),
(12345678901,12345678.90128,0.1234567890123,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.12345678901234,3,2,2),
(-1234567899,-5678,0.1234567890123,3,2,2),
(12345678901,12345678.9012,0.1234567890123,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2);
INSERT INTO cs4 VALUES
(1234,5678,0.12345678901234,2,1,1),
(1234,5678,0.12345678901234,2,1,1),
(12345678901,12345678.90128,0.1234567890123,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.12345678901234,3,2,2),
(1234567899,5678,0.1234567890123,3,2,2),
(12345678901,12345678.90123,0.1234567890123,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2);
#no GROUP BY DECIMAL(38)
SELECT "sum(38)_test1", sum(d1),sum(d2),sum(d3) FROM cs1;
SELECT "avg(38)_test1", avg(d1),avg(d2),avg(d3) FROM cs1;
SELECT "count(38)_test1", count(d1),count(d2),count(d3) FROM cs1;
SELECT "min(38)_test1", min(d1),min(d2),min(d3) FROM cs1;
SELECT "max(38)_test1", max(d1),max(d2),max(d3) FROM cs1;
SELECT "group_concat(38)_test1", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs1;
SELECT "count(distinct 38)_test1", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs1;
#no GROUP BY DECIMAL(38) UM 1phase aggregates
SELECT "sum(38)_test1", sum(d1),sum(d2),sum(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
SELECT "avg(38)_test1", avg(d1),avg(d2),avg(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
SELECT "count(38)_test1", count(d1),count(d2),count(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
SELECT "min(38)_test1", min(d1),min(d2),min(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
SELECT "max(38)_test1", max(d1),max(d2),max(d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
#Next two are proccessed by UM anyway
SELECT "group_concat(38)_test1", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
SELECT "count(distinct 38)_test1", count(distinct d1),count(distinct d2),count(distinct d3) FROM (SELECT d1,d2,d3 FROM cs1)a1;
#GROUP BY DECIMAL(38)
SELECT "sum(38)_GB(38)_test1" ,d4,d5,sum(d1),sum(d2),sum(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "avg(38)_GB(38)_test1" ,d4,d5,avg(d1),avg(d2),avg(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "count(38)_GB(38)_test1" ,d4,d5,count(d1),count(d2),count(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "min(38)_GB(38)_test1" ,d4,d5,min(d1),min(d2),min(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "max(38)_GB(38)_test1" ,d4,d5,max(d1),max(d2),max(d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "group_concat(38)_GB(38)_test1", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2;
SELECT "count(distinct 38)_GB(38)_test1", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs1 GROUP BY d4,d5 ORDER BY 2,3;
#with GROUP BY INT
SELECT "sum(38)_GB(8)_test1" ,i1,sum(d1),sum(d2),sum(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
SELECT "avg(38)_GB(8)_test1" ,i1,avg(d1),avg(d2),avg(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
SELECT "count(38)_GB(8)_test1" ,i1,count(d1),count(d2),count(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
SELECT "min(38)_GB(8)_test1" ,i1,min(d1),min(d2),min(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
SELECT "max(38)_GB(8)_test1" ,i1,max(d1),max(d2),max(d3) FROM cs1 GROUP BY i1 ORDER BY 2;
SELECT "group_concat(38)_GB(8)_test1", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs1 GROUP BY i1 ORDER BY 2;
SELECT "count(distinct 38)_GB(8)_test1", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs1 GROUP BY i1 ORDER BY 2;
#no GROUP BY UDECIMAL(38,10)
SELECT "sum(38)_test2", sum(d1),sum(d2),sum(d3) FROM cs2;
SELECT "avg(38)_test2", avg(d1),avg(d2),avg(d3) FROM cs2;
SELECT "count(38)_test2", count(d1),count(d2),count(d3) FROM cs2;
SELECT "min(38)_test2", min(d1),min(d2),min(d3) FROM cs2;
SELECT "max(38)_test2", max(d1),max(d2),max(d3) FROM cs2;
SELECT "group_concat(38)_test2", group_concat(d1),group_concat(d2),group_concat(d3) FROM cs2;
SELECT "count(distinct 38)_test2", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs2;
#no GROUP BY UDECIMAL(38) UM 1phase aggregates
SELECT "sum(38)_test2", sum(d1),sum(d2),sum(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
SELECT "avg(38)_test2", avg(d1),avg(d2),avg(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
SELECT "count(38)_test2", count(d1),count(d2),count(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
SELECT "min(38)_test2", min(d1),min(d2),min(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
SELECT "max(38)_test2", max(d1),max(d2),max(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
SELECT "group_concat(38)_test2", group_concat(d1),group_concat(d2),group_concat(d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
SELECT "count(distinct 38)_test2", count(distinct d1),count(distinct d2),count(distinct d3) FROM (SELECT d1,d2,d3 FROM cs2)a1;
#GROUP BY DECIMAL(38)
SELECT "sum(38)_GB(38)_test2" ,d4,d5,sum(d1),sum(d2),sum(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "avg(38)_GB(38)_test2" ,d4,d5,avg(d1),avg(d2),avg(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "count(38)_GB(38)_test2" ,d4,d5,count(d1),count(d2),count(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "min(38)_GB(38)_test2" ,d4,d5,min(d1),min(d2),min(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "max(38)_GB(38)_test2" ,d4,d5,max(d1),max(d2),max(d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "group_concat(38)_GB(38)_test2", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "count(distinct 38)_GB(38)_test2", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs2 GROUP BY d4,d5 ORDER BY 2,3;
#with GROUP BY INT
SELECT "sum(38)_GB(8)_test2" ,i1,sum(d1),sum(d2),sum(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
SELECT "avg(38)_GB(8)_test2" ,i1,avg(d1),avg(d2),avg(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
SELECT "count(38)_GB(8)_test2" ,i1,count(d1),count(d2),count(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
SELECT "min(38)_GB(8)_test2" ,i1,min(d1),min(d2),min(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
SELECT "max(38)_GB(8)_test2" ,i1,max(d1),max(d2),max(d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
SELECT "group_concat(38)_GB(8)_test2", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d1),group_concat(d3 ORDER BY d1) FROM cs2 GROUP BY i1 ORDER BY 2,3;
SELECT "count(distinct 38)_GB(8)_test2", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs2 GROUP BY i1 ORDER BY 2,3;
#no GROUP BY DECIMAL(19)
SELECT "sum(19)_test3", sum(d1),sum(d2),sum(d3) FROM cs3;
SELECT "avg(19)_test3", avg(d1),avg(d2),avg(d3) FROM cs3;
SELECT "count(19)_test3", count(d1),count(d2),count(d3) FROM cs3;
SELECT "min(19)_test3", min(d1),min(d2),min(d3) FROM cs3;
SELECT "max(19)_test3", max(d1),max(d2),max(d3) FROM cs3;
SELECT "group_concat(38)_test3", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d1),group_concat(d3 ORDER BY d1) FROM cs3;
SELECT "count(distinct 38)_test3", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs3;
#no GROUP BY DECIMAL(19) UM 1phase aggregates
SELECT "sum(19)_test3", sum(d1),sum(d2),sum(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
SELECT "avg(19)_test3", avg(d1),avg(d2),avg(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
SELECT "count(19)_test3", count(d1),count(d2),count(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
SELECT "min(19)_test3", min(d1),min(d2),min(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
SELECT "max(19)_test3", max(d1),max(d2),max(d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
SELECT "group_concat(38)_test3", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
SELECT "count(distinct 38)_test3", count(distinct d1),count(distinct d2),count(distinct d3) FROM (SELECT d1,d2,d3 FROM cs3)a1;
#GROUP BY DECIMAL(38)
SELECT "sum(38)_GB(38)_test3" ,d4,d5,sum(d1),sum(d2),sum(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "avg(38)_GB(38)_test3" ,d4,d5,avg(d1),avg(d2),avg(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "count(38)_GB(38)_test3" ,d4,d5,count(d1),count(d2),count(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "min(38)_GB(38)_test3" ,d4,d5,min(d1),min(d2),min(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "max(38)_GB(38)_test3" ,d4,d5,max(d1),max(d2),max(d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "group_concat(38)_GB(38)_test3", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "count(distinct 38)_GB(38)_test3", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs3 GROUP BY d4,d5 ORDER BY 2,3;
#with GROUP BY INT
SELECT "sum(38)_GB(8)_test3" ,i1,sum(d1),sum(d2),sum(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
SELECT "avg(38)_GB(8)_test3" ,i1,avg(d1),avg(d2),avg(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
SELECT "count(38)_GB(8)_test3" ,i1,count(d1),count(d2),count(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
SELECT "min(38)_GB(8)_test3" ,i1,min(d1),min(d2),min(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
SELECT "max(38)_GB(8)_test3" ,i1,max(d1),max(d2),max(d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
SELECT "group_concat(38)_GB(8)_test3", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
SELECT "count(distinct 38)_GB(8)_test3", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs3 GROUP BY i1 ORDER BY 2,3;
#no GROUP BY UDECIMAL(19)
SELECT "sum(19)_test4", sum(d1),sum(d2),sum(d3) FROM cs4;
SELECT "avg(19)_test4", avg(d1),avg(d2),avg(d3) FROM cs4;
SELECT "count(19)_test4", count(d1),count(d2),count(d3) FROM cs4;
SELECT "min(19)_test4", min(d1),min(d2),min(d3) FROM cs4;
SELECT "max(19)_test4", max(d1),max(d2),max(d3) FROM cs4;
SELECT "group_concat(38)_test4", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs4;
SELECT "count(distinct 38)_test4", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs4;
#no GROUP BY UDECIMAL(19) UM 1phase aggregates
SELECT "sum(19)_test4", sum(d1),sum(d2),sum(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
SELECT "avg(19)_test4", avg(d1),avg(d2),avg(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
SELECT "count(19)_test4", count(d1),count(d2),count(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
SELECT "min(19)_test4", min(d1),min(d2),min(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
SELECT "max(19)_test4", max(d1),max(d2),max(d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
SELECT "group_concat(38)_test4", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
SELECT "count(distinct 38)_test4", count(distinct d1),count(distinct d2),count(distinct d3) FROM (SELECT d1,d2,d3 FROM cs4)a1;
#GROUP BY DECIMAL(38)
SELECT "sum(38)_GB(38)_test4" ,d4,d5,sum(d1),sum(d2),sum(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "avg(38)_GB(38)_test4" ,d4,d5,avg(d1),avg(d2),avg(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "count(38)_GB(38)_test4" ,d4,d5,count(d1),count(d2),count(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "min(38)_GB(38)_test4" ,d4,d5,min(d1),min(d2),min(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "max(38)_GB(38)_test4" ,d4,d5,max(d1),max(d2),max(d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "group_concat(38)_GB(38)_test4", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
SELECT "count(distinct 38)_GB(38)_test4", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs4 GROUP BY d4,d5 ORDER BY 2,3;
#with GROUP BY INT
SELECT "sum(38)_GB(38)_test4" ,i1,sum(d1),sum(d2),sum(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
SELECT "avg(38)_GB(38)_test4" ,i1,avg(d1),avg(d2),avg(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
SELECT "count(38)_GB(38)_test4" ,i1,count(d1),count(d2),count(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
SELECT "min(38)_GB(38)_test4" ,i1,min(d1),min(d2),min(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
SELECT "max(38)_GB(38)_test4" ,i1,max(d1),max(d2),max(d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
SELECT "group_concat(38)_GB(8)_test4", group_concat(d1 ORDER BY d1),group_concat(d2 ORDER BY d2),group_concat(d3 ORDER BY d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
SELECT "count(distinct 38)_GB(8)_test4", count(distinct d1),count(distinct d2),count(distinct d3) FROM cs4 GROUP BY i1 ORDER BY 2,3;
#non-first const column
SELECT sum(d1), "sum(38)_test1", sum(d2),sum(d3) FROM cs1;
#rounding for AVG
#The last digit rounding is an open question for aggregates.
INSERT INTO cs5 VALUES (1),(0.1),(0.05),(0.05),(0.05),(0.05),(0.2),(0.154),(0.1),(0.05),(0.05);
SELECT avg(d) FROM cs5;
UPDATE cs5 SET d=-d;
SELECT avg(d) FROM cs5;
#Add HAVING with GB
DROP TABLE cs1;
DROP TABLE cs2;
DROP TABLE cs3;
DROP TABLE cs4;
DROP TABLE cs5;

View File

@ -0,0 +1,309 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS mcol641_arithmetic_db;
--enable_warnings
CREATE DATABASE mcol641_arithmetic_db;
USE mcol641_arithmetic_db;
--disable_warnings
DROP PROCEDURE IF EXISTS deleteproc;
--enable_warnings
DELIMITER //;
CREATE PROCEDURE deleteproc ()
BEGIN
DELETE FROM cs1;
DELETE FROM cs2;
DELETE FROM cs3;
DELETE FROM cs4;
DELETE FROM cs5;
DELETE FROM cs6;
DELETE FROM cs7;
DELETE FROM cs8;
DELETE FROM cs9;
DELETE FROM cs10;
DELETE FROM cs11;
DELETE FROM cs12;
END//
DELIMITER ;//
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(19), d2 DECIMAL(19)) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(38), d2 DECIMAL(19)) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(38), d2 DECIMAL(10)) ENGINE=columnstore;
CREATE TABLE cs5 (d1 DECIMAL(38,10), d2 DECIMAL(38,10)) ENGINE=columnstore;
CREATE TABLE cs6 (d1 DECIMAL(19,10), d2 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs7 (d1 DECIMAL(38,10), d2 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs8 (d1 DECIMAL(38,10), d2 DECIMAL(10,10)) ENGINE=columnstore;
CREATE TABLE cs9 (d1 DECIMAL(38,38), d2 DECIMAL(38,38)) ENGINE=columnstore;
CREATE TABLE cs10 (d1 DECIMAL(19,19), d2 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs11 (d1 DECIMAL(38,38), d2 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs12 (d1 DECIMAL(38,38), d2 DECIMAL(10,10)) ENGINE=columnstore;
# Addition
# without overflow check
SET columnstore_decimal_overflow_check=off;
INSERT INTO cs1 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, 12345678901234567890123456789012345678), (12345678901234567890123456789012345678, -22345678901234567890123456789012345678);
INSERT INTO cs1 VALUES (99999999999999999999999999999999999998, 1), (-99999999999999999999999999999999999998, -1);
SELECT "add_test_38_0_38_0", d1 + d2 FROM cs1;
INSERT INTO cs2 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs2 VALUES (1234567890123456789, 1234567890123456789), (1234567890123456789, -2234567890123456789);
INSERT INTO cs2 VALUES (9999999999999999998, 1), (-9999999999999999998, -1);
SELECT "add_test_19_0_19_0", d1 + d2 FROM cs2;
INSERT INTO cs3 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs3 VALUES (12345678901234567890123456789012345678, 1234567890123456789), (12345678901234567890123456789012345678, -2234567890123456789);
INSERT INTO cs3 VALUES (99999999999999999999999999999999999998, 1), (-99999999999999999999999999999999999998, -1);
SELECT "add_test_38_0_19_0", d1 + d2 FROM cs3;
INSERT INTO cs4 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs4 VALUES (12345678901234567890123456789012345678, 1234567890), (12345678901234567890123456789012345678, -2234567890);
INSERT INTO cs4 VALUES (99999999999999999999999999999999999998, 1), (-99999999999999999999999999999999999998, -1);
SELECT "add_test_38_0_10_0", d1 + d2 FROM cs4;
INSERT INTO cs5 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs5 VALUES (1234567890123456789012345678.9012345678, 1234567890123456789012345678.9012345678), (1234567890123456789012345678.9012345678, -2234567890123456789012345678.9012345678);
INSERT INTO cs5 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "add_test_38_10_38_10", d1 + d2 FROM cs5;
INSERT INTO cs6 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs6 VALUES (123456789.0123456789, 123456789.0123456789), (123456789.0123456789, -223456789.0123456789);
INSERT INTO cs6 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "add_test_19_10_19_10", d1 + d2 FROM cs6;
INSERT INTO cs7 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs7 VALUES (1234567890123456789012345678.9012345678, 123456789.0123456789), (1234567890123456789012345678.9012345678, -223456789.0123456789);
INSERT INTO cs7 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "add_test_38_10_19_10", d1 + d2 FROM cs7;
INSERT INTO cs8 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs8 VALUES (1234567890123456789012345678.9012345678, 0.1234567890), (1234567890123456789012345678.9012345678, -0.2234567890);
INSERT INTO cs8 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "add_test_38_10_10_10", d1 + d2 FROM cs8;
INSERT INTO cs9 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs9 VALUES (0.12345678901234567890123456789012345678, 0.12345678901234567890123456789012345678), (0.12345678901234567890123456789012345678, -0.22345678901234567890123456789012345678);
INSERT INTO cs9 VALUES (0.99999999999999999999999999999999999998, 0.00000000000000000000000000000000000001), (-0.99999999999999999999999999999999999998, -0.00000000000000000000000000000000000001);
SELECT "add_test_38_38_38_38", d1 + d2 FROM cs9;
INSERT INTO cs10 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs10 VALUES (0.1234567890123456789, 0.1234567890123456789), (0.1234567890123456789, -0.2234567890123456789);
INSERT INTO cs10 VALUES (0.9999999999999999998, 0.0000000000000000001), (-0.9999999999999999998, -0.0000000000000000001);
SELECT "add_test_19_19_19_19", d1 + d2 FROM cs10;
INSERT INTO cs11 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs11 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789), (0.12345678901234567890123456789012345678, -0.2234567890123456789);
INSERT INTO cs11 VALUES (0.99999999999999999999999999999999999998, 0.0000000000000000001), (-0.99999999999999999999999999999999999998, -0.0000000000000000001);
SELECT "add_test_38_38_19_19", d1 + d2 FROM cs11;
INSERT INTO cs12 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs12 VALUES (0.12345678901234567890123456789012345678, 0.1234567890), (0.12345678901234567890123456789012345678, -0.2234567890);
INSERT INTO cs12 VALUES (0.99999999999999999999999999999999999998, 0.0000000001), (-0.99999999999999999999999999999999999998, -0.0000000001);
SELECT "add_test_38_38_10_10", d1 + d2 FROM cs12;
# with overflow check
# SET columnstore_decimal_overflow_check=on;
# CALL deleteproc();
# INSERT INTO cs1 VALUES (99999999999999999999999999999999999999, 99999999999999999999999999999999999999), (-99999999999999999999999999999999999999, -99999999999999999999999999999999999999);
# SELECT "add_test_38_0_38_0_overflow", d1 + d2 FROM cs1;
# INSERT INTO cs9 VALUES (0.99999999999999999999999999999999999999, 0.99999999999999999999999999999999999999), (-0.99999999999999999999999999999999999999, -0.99999999999999999999999999999999999999);
# SELECT "add_test_38_38_38_38_overflow", d1 + d2 FROM cs9;
# Subtraction
# without overflow check
SET columnstore_decimal_overflow_check=off;
CALL deleteproc();
INSERT INTO cs1 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, -12345678901234567890123456789012345678), (-12345678901234567890123456789012345678, -22345678901234567890123456789012345678);
INSERT INTO cs1 VALUES (99999999999999999999999999999999999999, 1), (-99999999999999999999999999999999999999, -1);
SELECT "subtract_test_38_0_38_0", d1 - d2 FROM cs1;
INSERT INTO cs2 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs2 VALUES (1234567890123456789, -1234567890123456789), (-1234567890123456789, -2234567890123456789);
INSERT INTO cs2 VALUES (9999999999999999999, 1), (-9999999999999999999, -1);
SELECT "subtract_test_19_0_19_0", d1 - d2 FROM cs2;
INSERT INTO cs3 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs3 VALUES (12345678901234567890123456789012345678, 1234567890123456789), (-12345678901234567890123456789012345678, -2234567890123456789);
INSERT INTO cs3 VALUES (99999999999999999999999999999999999999, 1), (-99999999999999999999999999999999999999, -1);
SELECT "subtract_test_38_0_19_0", d1 - d2 FROM cs3;
INSERT INTO cs4 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs4 VALUES (12345678901234567890123456789012345678, 1234567890), (-12345678901234567890123456789012345678, -2234567890);
INSERT INTO cs4 VALUES (99999999999999999999999999999999999999, 1), (-99999999999999999999999999999999999999, -1);
SELECT "subtract_test_38_0_10_0", d1 - d2 FROM cs4;
INSERT INTO cs5 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs5 VALUES (1234567890123456789012345678.9012345678, -1234567890123456789012345678.9012345678), (-1234567890123456789012345678.9012345678, -2234567890123456789012345678.9012345678);
INSERT INTO cs5 VALUES (9999999999999999999999999999.9999999999, 0.0000000001), (-9999999999999999999999999999.9999999999, -0.0000000001);
SELECT "subtract_test_38_10_38_10", d1 - d2 FROM cs5;
INSERT INTO cs6 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs6 VALUES (123456789.0123456789, -123456789.0123456789), (-123456789.0123456789, -223456789.0123456789);
INSERT INTO cs6 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "subtract_test_19_10_19_10", d1 - d2 FROM cs6;
INSERT INTO cs7 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs7 VALUES (1234567890123456789012345678.9012345678, 123456789.0123456789), (-1234567890123456789012345678.9012345678, -223456789.0123456789);
INSERT INTO cs7 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "subtract_test_38_10_19_10", d1 - d2 FROM cs7;
INSERT INTO cs8 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs8 VALUES (1234567890123456789012345678.9012345678, 0.1234567890), (-1234567890123456789012345678.9012345678, -0.2234567890);
INSERT INTO cs8 VALUES (9999999999999999999999999999.9999999998, 0.0000000001), (-9999999999999999999999999999.9999999998, -0.0000000001);
SELECT "subtract_test_38_10_10_10", d1 - d2 FROM cs8;
INSERT INTO cs9 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs9 VALUES (-0.12345678901234567890123456789012345678, 0.12345678901234567890123456789012345678), (-0.12345678901234567890123456789012345678, -0.22345678901234567890123456789012345678);
INSERT INTO cs9 VALUES (0.99999999999999999999999999999999999998, 0.00000000000000000000000000000000000001), (-0.99999999999999999999999999999999999998, -0.00000000000000000000000000000000000001);
SELECT "subtract_test_38_38_38_38", d1 - d2 FROM cs9;
INSERT INTO cs10 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs10 VALUES (0.1234567890123456789, 0.1234567890123456788), (0.1234567890123456789, -0.2234567890123456789);
INSERT INTO cs10 VALUES (0.9999999999999999998, 0.0000000100000000001), (-0.9999999999999999998, -0.0000000100000000001);
SELECT "subtract_test_19_19_19_19", d1 - d2 FROM cs10;
INSERT INTO cs11 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs11 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789), (-0.12345678901234567890123456789012345678, -0.2234567890123456789);
INSERT INTO cs11 VALUES (0.99999999999999999999999999999999999998, 0.0000000000000000001), (-0.99999999999999999999999999999999999998, -0.0000000000000000001);
SELECT "subtract_test_38_38_19_19", d1 - d2 FROM cs11;
INSERT INTO cs12 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs12 VALUES (0.12345678901234567890123456789012345678, 0.1234567890), (0.12345678901234567890123456789012345678, -0.2234567890);
INSERT INTO cs12 VALUES (0.99999999999999999999999999999999999998, 0.0000000001), (-0.99999999999999999999999999999999999998, -0.0000000001);
SELECT "subtract_test_38_38_10_10", d1 - d2 FROM cs12;
# with overflow check
# SET columnstore_decimal_overflow_check=on;
# CALL deleteproc();
# INSERT INTO cs1 VALUES (99999999999999999999999999999999999999, -99999999999999999999999999999999999999), (99999999999999999999999999999999999999, -99999999999999999999999999999999999999);
# SELECT "subtract_test_38_0_38_0_overflow", d1 - d2 FROM cs1;
# INSERT INTO cs9 VALUES (0.99999999999999999999999999999999999999, -0.99999999999999999999999999999999999999), (0.99999999999999999999999999999999999999, -0.99999999999999999999999999999999999999);
# SELECT "subtract_test_38_38_38_38_overflow", d1 - d2 FROM cs9;
# Multiplication
# without overflow check
SET columnstore_decimal_overflow_check=off;
CALL deleteproc();
INSERT INTO cs1 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs1 VALUES (1234567890123456789, 1234567890123456789), (1234567890123456789, -2234567890123456789);
INSERT INTO cs1 VALUES (9999999999999999999999999999, 10000000000), (-9999999999999999999999999999, -10000000000);
SELECT "multiply_test_38_0_38_0", d1 * d2 FROM cs1;
INSERT INTO cs2 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs2 VALUES (1234567890123456789, 1234567890123456789), (1234567890123456789, -2234567890123456789);
INSERT INTO cs2 VALUES (9999999999999999998, 1), (-9999999999999999998, -1);
SELECT "multiply_test_19_0_19_0", d1 * d2 FROM cs2;
INSERT INTO cs3 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs3 VALUES (1234567890123456789, 1234567890123456789), (1234567890123456789, -2234567890123456789);
INSERT INTO cs3 VALUES (99999999999999999999999999999999999998, 1), (-99999999999999999999999999999999999998, -1);
SELECT "multiply_test_38_0_19_0", d1 * d2 FROM cs3;
INSERT INTO cs4 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs4 VALUES (1234567890123456789012345678, 1234567890), (1234567890123456789012345678, -2234567890);
INSERT INTO cs4 VALUES (99999999999999999999999999998, 1000000000), (-99999999999999999999999999998, -1000000000);
SELECT "multiply_test_38_0_10_0", d1 * d2 FROM cs4;
INSERT INTO cs5 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs5 VALUES (123456789.0123456789, 123456789.0123456789), (123456789.0123456789, -223456789.0123456789);
INSERT INTO cs5 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "multiply_test_38_10_38_10", d1 * d2 FROM cs5;
INSERT INTO cs6 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs6 VALUES (123456789.0123456789, 123456789.0123456789), (123456789.0123456789, -223456789.0123456789);
INSERT INTO cs6 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "multiply_test_19_10_19_10", d1 * d2 FROM cs6;
INSERT INTO cs7 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs7 VALUES (123456789.0123456789, 123456789.0123456789), (123456789.0123456789, -223456789.0123456789);
INSERT INTO cs7 VALUES (999999999.9999999998, 0.0000000001), (-999999999.9999999998, -0.0000000001);
SELECT "multiply_test_38_10_19_10", d1 * d2 FROM cs7;
INSERT INTO cs8 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs8 VALUES (123456789012345678.9012345678, 0.1234567890), (123456789012345678.9012345678, -0.2234567890);
INSERT INTO cs8 VALUES (999999999999999999.9999999998, 0.0000000001), (-999999999999999999.9999999998, -0.0000000001);
SELECT "multiply_test_38_10_10_10", d1 * d2 FROM cs8;
INSERT INTO cs9 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs9 VALUES (0.1234567890123456789, 0.1234567890123456789), (0.1234567890123456789, -0.2234567890123456789);
INSERT INTO cs9 VALUES (0.9999999999999999998, 0.0000000000000000001), (-0.9999999999999999998, -0.0000000000000000001);
SELECT "multiply_test_38_38_38_38", d1 * d2 FROM cs9;
INSERT INTO cs10 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs10 VALUES (0.1234567890123456789, 0.1234567890123456789), (0.1234567890123456789, -0.2234567890123456789);
INSERT INTO cs10 VALUES (0.9999999999999999998, 0.0000000000000000001), (-0.9999999999999999998, -0.0000000000000000001);
SELECT "multiply_test_19_19_19_19", d1 * d2 FROM cs10;
INSERT INTO cs11 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs11 VALUES (0.1234567890123456789, 0.123456789), (0.1234567890123456789, -0.223456789);
INSERT INTO cs11 VALUES (0.9999999999999999998, 0.000000001), (-0.9999999999999999998, -0.000000001);
SELECT "multiply_test_38_38_19_19", d1 * d2 FROM cs11;
INSERT INTO cs12 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs12 VALUES (0.1234567890123456789012345678, 0.12345), (0.1234567890123456789012345678, -0.22345);
INSERT INTO cs12 VALUES (0.9999999999999999999999999998, 0.00001), (-0.9999999999999999999999999998, -0.00001);
SELECT "multiply_test_38_38_10_10", d1 * d2 FROM cs12;
# with overflow check
# SET columnstore_decimal_overflow_check=on;
# CALL deleteproc();
# INSERT INTO cs1 VALUES (99999999999999999999999999999999999999, 99999999999999999999999999999999999999), (-99999999999999999999999999999999999999, -99999999999999999999999999999999999999);
# INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, 12345678901234567890123456789012345678), (12345678901234567890123456789012345678, -22345678901234567890123456789012345678);
# SELECT "multiply_test_38_0_38_0_overflow", d1 * d2 FROM cs1;
# INSERT INTO cs3 VALUES (12345678901234567890123456789012345678, 1234567890123456789), (12345678901234567890123456789012345678, -2234567890123456789);
# SELECT "multiply_test_38_0_19_0", d1 * d2 FROM cs3;
# INSERT INTO cs4 VALUES (12345678901234567890123456789012345678, 1234567890), (12345678901234567890123456789012345678, -2234567890);
# SELECT "multiply_test_38_0_10_0", d1 * d2 FROM cs4;
# INSERT INTO cs5 VALUES (1234567890123456789012345678.9012345678, 1234567890123456789012345678.9012345678), (1234567890123456789012345678.9012345678, -2234567890123456789012345678.9012345678);
# SELECT "multiply_test_38_10_38_10", d1 * d2 FROM cs5;
# INSERT INTO cs7 VALUES (1234567890123456789012345678.9012345678, 123456789.0123456789), (1234567890123456789012345678.9012345678, -223456789.0123456789);
# SELECT "multiply_test_38_10_19_10", d1 * d2 FROM cs7;
# INSERT INTO cs8 VALUES (1234567890123456789012345678.9012345678, 0.1234567890), (1234567890123456789012345678.9012345678, -0.2234567890);
# SELECT "multiply_test_38_10_10_10", d1 * d2 FROM cs8;
# INSERT INTO cs9 VALUES (0.12345678901234567890123456789012345678, 0.12345678901234567890123456789012345678), (0.12345678901234567890123456789012345678, -0.22345678901234567890123456789012345678);
# SELECT "multiply_test_38_38_38_38_overflow", d1 * d2 FROM cs9;
# INSERT INTO cs11 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789), (0.12345678901234567890123456789012345678, -0.2234567890123456789);
# SELECT "multiply_test_38_38_19_19", d1 * d2 FROM cs11;
# INSERT INTO cs12 VALUES (0.12345678901234567890123456789012345678, 0.1234567890), (0.12345678901234567890123456789012345678, -0.2234567890);
# SELECT "multiply_test_38_38_10_10", d1 * d2 FROM cs12;
# Division
# without overflow check
SET columnstore_decimal_overflow_check=off;
CALL deleteproc();
INSERT INTO cs1 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, 4567890123456789), (12345678901234567890123456789012345678, -223456789012345678901234567890123456);
INSERT INTO cs1 VALUES (44444444444444444444444444444444444444, 10000000000), (-44444444444444444444444444444444, 1000);
SELECT "divide_test_38_0_38_0", d1 / d2, d2 / d1 FROM cs1;
INSERT INTO cs2 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs2 VALUES (1234567890123456789, 4567890123456789), (1234567890123456789, -223456789012345678);
INSERT INTO cs2 VALUES (4444444444444444444, 10000000000), (-44444444444444444, -1000);
SELECT "divide_test_19_0_19_0", d1 / d2, d2 / d1 FROM cs2;
INSERT INTO cs3 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs3 VALUES (12345678901234567890123456789012345678, 4567890123456789), (12345678901234567890123456789012345678, -2234567890123456);
INSERT INTO cs3 VALUES (4444444444444444444, 10000000000), (-44444444444444444, -1000);
SELECT "divide_test_38_0_19_0", d1 / d2, d2 / d1 FROM cs3;
INSERT INTO cs4 VALUES (1234, 5678), (1234, -5678);
INSERT INTO cs4 VALUES (12345678901234567890123456789012345678, 4567890123), (12345678901234567890123456789012345678, -2234567890);
INSERT INTO cs4 VALUES (4444444444444444444, 1000000000), (-44444444444444444, -1000);
SELECT "divide_test_38_0_10_0", d1 / d2, d2 / d1 FROM cs4;
INSERT INTO cs5 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs5 VALUES (1234567890123456789012345678.9012345678, 4567890123456789.0123456789), (1234567890123456789012345678.9012345678, -22345678901234567890123456.7890123456);
INSERT INTO cs5 VALUES (4444444444444444444444444444.4444444444, 10000000000.0), (-4444444444444444444444.4444444444, 1000.0);
SELECT "divide_test_38_10_38_10", d1 / d2, d2 / d1 FROM cs5;
INSERT INTO cs6 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs6 VALUES (123456789.0123456789, 456789.0123456789), (123456789.0123456789, -22345678.9012345678);
INSERT INTO cs6 VALUES (444444444.4444444444, 100000000.0), (-4444444.4444444444, -1000.0);
SELECT "divide_test_19_10_19_10", d1 / d2, d2 / d1 FROM cs6;
INSERT INTO cs7 VALUES (12.34, 56.78), (12.34, -56.78);
INSERT INTO cs7 VALUES (1234567890123456789012345678.9012345678, 456789012.0123456789), (1234567890123456789012345678.9012345678, -223456789.7890123456);
INSERT INTO cs7 VALUES (444444444.4444444444, 100000000.0), (-4444444.4444444444, -1000.0);
SELECT "divide_test_38_10_19_10", d1 / d2, d2 / d1 FROM cs7;
INSERT INTO cs8 VALUES (12.34, 0.5678), (12.34, -0.5678);
INSERT INTO cs8 VALUES (1234567890123456789.9012345678, 0.4567890123), (1234567890123456789.9012345678, -0.2234567890);
INSERT INTO cs8 VALUES (444444444.4444444444, 0.10000000), (-4444444.4444444444, -0.10000);
SELECT "divide_test_38_10_10_10", d1 / d2, d2 / d1 FROM cs8;
INSERT INTO cs9 VALUES (0.0000000000000000000000000001234, 0.000000000000000000005678), (0.000000000000000000000000001234, -0.000000000000000000005678);
INSERT INTO cs9 VALUES (0.00000000000000000004567890123456789, 0.12345678901234567890123456789012345678), (-0.000000000000000002234567890123456789, 0.12345678901234567890123456789012345678);
INSERT INTO cs9 VALUES (0.000000000000010000000000, 0.44444444444444444444444444444444444444), (0.00000000000001000, -0.44444444444444444444444444444444);
# d2 / d1 will result in an overflow
SELECT "divide_test_38_38_38_38", d1 / d2 FROM cs9;
INSERT INTO cs10 VALUES (0.1234, 0.5678), (0.1234, -0.5678);
INSERT INTO cs10 VALUES (0.1234567890123456789, 0.4567890123456789), (0.1234567890123456789, -0.223456789012345678);
INSERT INTO cs10 VALUES (0.4444444444444444444, 0.10000000000), (-0.44444444444444444, -0.1000);
SELECT "divide_test_19_19_19_19", d1 / d2, d2 / d1 FROM cs10;
# we lose a few decimal places in the end in the following test,
# so commenting out for now
# INSERT INTO cs11 VALUES (0.00000000000000000000001234, 0.0000000000000005678), (0.0000000000000000000001234, -0.0000000000000005678);
# INSERT INTO cs11 VALUES (0.000000000000004567890123456789, 0.1234567890123456789), (-0.0000000000002234567890123456789, 0.1234567890123456789);
# INSERT INTO cs11 VALUES (0.0000000010000000000, 0.44444444444444444444), (0.000000001000, -0.4444444444444444444);
# SELECT "divide_test_38_38_19_19", d1 / d2, d2 / d1 FROM cs11;
INSERT INTO cs12 VALUES (0.0000000000000000000000000000001234, 0.5678), (0.0000000000000000000000000000001234, -0.5678);
INSERT INTO cs12 VALUES (0.00000000001234567890123456789012345678, 0.4567890123), (0.00000000001234567890123456789012345678, -0.2234567890);
INSERT INTO cs12 VALUES (0.000000000000000000004444444444444444444, 0.1000000000), (-0.0000000000000000000044444444444444444, -0.1000);
# d2 / d1 will result in an overflow
SELECT "divide_test_38_38_10_10", d1 / d2 FROM cs12;
# with overflow check
# we cannot trigger the division overflow of lhs == Decimal::minInt128 && rhs == -1
# since lhs = -170141183460469231731687303715884105728 cannot be inserted
# into a decimal(38) column
# Clean UP
DROP PROCEDURE IF EXISTS deleteproc;
DROP DATABASE mcol641_arithmetic_db;

View File

@ -0,0 +1,54 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS test_mcol641_create;
--enable_warnings
CREATE DATABASE test_mcol641_create;
USE test_mcol641_create;
--disable_warnings
DROP TABLE IF EXISTS cs1;
DROP TABLE IF EXISTS cs2;
DROP TABLE IF EXISTS cs3;
DROP TABLE IF EXISTS cs4;
--enable_warnings
CREATE TABLE cs1(d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 DECIMAL(19), d5 DECIMAL(19,19),d6 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs2(d1 DECIMAL(38) SIGNED, d2 DECIMAL(38,10) SIGNED, d3 DECIMAL(38,38) SIGNED) ENGINE=columnstore;
#This must raise a warning
CREATE TABLE cs3(d1 DECIMAL(38) UNSIGNED ZEROFILL, d2 DECIMAL(38,10) UNSIGNED ZEROFILL, d3 DECIMAL(38,38) UNSIGNED ZEROFILL) ENGINE=columnstore;
CREATE TABLE cs4(d1 DECIMAL(18), d2 DECIMAL(18,10), d3 DECIMAL(18,18)) ENGINE=columnstore;
SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE,COLUMN_LENGTH,COLUMN_POSITION,COLUMN_DEFAULT,NUMERIC_PRECISION,NUMERIC_SCALE FROM information_schema.columnstore_columns WHERE table_name = 'cs1' OR table_name = 'cs2' OR table_name = 'cs3' OR table_name = 'cs4' ORDER BY table_name,column_name ASC;
ALTER TABLE cs1 DROP COLUMN d4;
ALTER TABLE cs1 ADD COLUMN d7 DECIMAL(38,37);
ALTER TABLE cs2 ADD COLUMN d4 DECIMAL(30,30) SIGNED;
ALTER TABLE cs3 ADD COLUMN d5 DECIMAL(20,18) UNSIGNED;
# Bug. This must work fine.
--error 1178
ALTER TABLE cs1 RENAME COLUMN d7 TO d17;
# Bug. This must work fine.
--error 1178
ALTER TABLE cs2 ADD COLUMN (d5 DECIMAL(38,5), d6 DECIMAL(35,15));
# Bug. This must work fine.
--error 1815
ALTER TABLE cs3 MODIFY d1 DECIMAL(38) SIGNED;
SELECT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE,COLUMN_LENGTH,COLUMN_POSITION,COLUMN_DEFAULT,NUMERIC_PRECISION,NUMERIC_SCALE FROM information_schema.columnstore_columns WHERE table_schema = 'test_mcol641_create' ORDER BY table_name,column_name ASC;
# This must return an error
--error 1815
CREATE TABLE cs5(d1 DECIMAL(39)) ENGINE=columnstore;
--error 1425
CREATE TABLE cs5(d1 DECIMAL(38,39)) ENGINE=columnstore;
--error 1815
ALTER TABLE cs1 ADD COLUMN d10 DECIMAL(40);
--error 1425
ALTER TABLE cs1 ADD COLUMN d11 DECIMAL(38,40);
DROP TABLE cs1;
DROP TABLE cs2;
DROP TABLE cs3;
DROP TABLE cs4;
DROP DATABASE test_mcol641_create;

View File

@ -0,0 +1,331 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS mcol641_delete_db;
--enable_warnings
CREATE DATABASE mcol641_delete_db;
USE mcol641_delete_db;
DROP PROCEDURE IF EXISTS signedinsertproc;
DROP PROCEDURE IF EXISTS signeddeleteproc;
DROP PROCEDURE IF EXISTS unsignedinsertproc;
DROP PROCEDURE IF EXISTS unsigneddeleteproc;
DELIMITER //;
CREATE PROCEDURE signedinsertproc ()
BEGIN
INSERT INTO cs1 VALUES (125, 125);
INSERT INTO cs1 VALUES (-125, -125);
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999998);
INSERT INTO cs1 values (99999999999999999999999999999999999999, 9999999999999999999);
INSERT INTO cs1 values (-99999999999999999999999999999999999998, -9999999999999999998);
INSERT INTO cs1 values (-99999999999999999999999999999999999999, -9999999999999999999);
INSERT INTO cs1 VALUES (0, 0);
INSERT INTO cs1 VALUES (NULL, NULL);
INSERT INTO cs2 VALUES (1.25, 1.25);
INSERT INTO cs2 VALUES (-1.25, -1.25);
INSERT INTO cs2 values (9999999999999999999999999999.9999999998, 999999999.9999999998);
INSERT INTO cs2 values (9999999999999999999999999999.9999999999, 999999999.9999999999);
INSERT INTO cs2 values (-9999999999999999999999999999.9999999998, -999999999.9999999998);
INSERT INTO cs2 values (-9999999999999999999999999999.9999999999, -999999999.9999999999);
INSERT INTO cs2 VALUES (1.1234567891, 1.1234567891);
INSERT INTO cs2 VALUES (1.9999999999, 1.9999999999);
INSERT INTO cs2 VALUES (-1.1234567891, -1.1234567891);
INSERT INTO cs2 VALUES (-1.9999999999, -1.9999999999);
INSERT INTO cs2 VALUES (1.0000000009, 1.0000000009);
INSERT INTO cs2 VALUES (-1.0000000009, -1.0000000009);
INSERT INTO cs2 VALUES (0, 0);
INSERT INTO cs2 VALUES (NULL, NULL);
INSERT INTO cs3 VALUES (0.125, 0.125);
INSERT INTO cs3 VALUES (-0.125, -0.125);
INSERT INTO cs3 values (0.99999999999999999999999999999999999998, 0.9999999999999999998);
INSERT INTO cs3 values (0.99999999999999999999999999999999999999, 0.9999999999999999999);
INSERT INTO cs3 values (-0.99999999999999999999999999999999999998, -0.9999999999999999998);
INSERT INTO cs3 values (-0.99999999999999999999999999999999999999, -0.9999999999999999999);
INSERT INTO cs3 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789);
INSERT INTO cs3 VALUES (0.19999999999999999999999999999999999999, 0.1999999999999999999);
INSERT INTO cs3 VALUES (-0.12345678901234567890123456789012345678, -0.1234567890123456789);
INSERT INTO cs3 VALUES (-0.19999999999999999999999999999999999999, -0.1999999999999999999);
INSERT INTO cs3 VALUES (0.00000000000000000000000000000000000009, 0.0000000000000000009);
INSERT INTO cs3 VALUES (-0.00000000000000000000000000000000000009, -0.0000000000000000009);
INSERT INTO cs3 VALUES (0, 0);
INSERT INTO cs3 VALUES (NULL, NULL);
END//
CREATE PROCEDURE unsignedinsertproc ()
BEGIN
INSERT INTO cs4 VALUES (125, 125);
INSERT INTO cs4 values (99999999999999999999999999999999999998, 9999999999999999998);
INSERT INTO cs4 values (99999999999999999999999999999999999999, 9999999999999999999);
INSERT INTO cs4 VALUES (0, 0);
INSERT INTO cs4 VALUES (NULL, NULL);
INSERT INTO cs5 VALUES (1.25, 1.25);
INSERT INTO cs5 values (9999999999999999999999999999.9999999998, 999999999.9999999998);
INSERT INTO cs5 values (9999999999999999999999999999.9999999999, 999999999.9999999999);
INSERT INTO cs5 VALUES (1.1234567891, 1.1234567891);
INSERT INTO cs5 VALUES (1.9999999999, 1.9999999999);
INSERT INTO cs5 VALUES (1.0000000009, 1.0000000009);
INSERT INTO cs5 VALUES (0, 0);
INSERT INTO cs5 VALUES (NULL, NULL);
INSERT INTO cs6 VALUES (0.125, 0.125);
INSERT INTO cs6 values (0.99999999999999999999999999999999999998, 0.9999999999999999998);
INSERT INTO cs6 values (0.99999999999999999999999999999999999999, 0.9999999999999999999);
INSERT INTO cs6 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789);
INSERT INTO cs6 VALUES (0.19999999999999999999999999999999999999, 0.1999999999999999999);
INSERT INTO cs6 VALUES (0.00000000000000000000000000000000000009, 0.0000000000000000009);
INSERT INTO cs6 VALUES (0, 0);
INSERT INTO cs6 VALUES (NULL, NULL);
END//
CREATE PROCEDURE signeddeleteproc ()
BEGIN
DELETE FROM cs1;
DELETE FROM cs2;
DELETE FROM cs3;
END//
CREATE PROCEDURE unsigneddeleteproc ()
BEGIN
DELETE FROM cs4;
DELETE FROM cs5;
DELETE FROM cs6;
END//
DELIMITER ;//
DROP TABLE IF EXISTS cs1;
DROP TABLE IF EXISTS cs2;
DROP TABLE IF EXISTS cs3;
DROP TABLE IF EXISTS cs4;
DROP TABLE IF EXISTS cs5;
DROP TABLE IF EXISTS cs6;
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(19)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38,10), d2 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(38,38), d2 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(19) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs5 (d1 DECIMAL(38,10) UNSIGNED, d2 DECIMAL(19,10) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs6 (d1 DECIMAL(38,38) UNSIGNED, d2 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
CALL signedinsertproc();
# Full table delete
DELETE FROM cs1;
DELETE FROM cs2;
DELETE FROM cs3;
SELECT "signedtest1", d1, d2 FROM cs1;
SELECT "signedtest1", d1, d2 FROM cs2;
SELECT "signedtest1", d1, d2 FROM cs3;
# Deletes with WHERE clause
# Delete a single row with a constant value in WHERE clause
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1=-99999999999999999999999999999999999998;
DELETE FROM cs1 WHERE d2=9999999999999999999;
DELETE FROM cs2 WHERE d1=-9999999999999999999999999999.9999999998;
DELETE FROM cs2 WHERE d2=999999999.9999999999;
DELETE FROM cs3 WHERE d1=-0.99999999999999999999999999999999999998;
DELETE FROM cs3 WHERE d2=0.9999999999999999999;
SELECT "signedtest2", d1, d2 FROM cs1;
SELECT "signedtest2", d1, d2 FROM cs2;
SELECT "signedtest2", d1, d2 FROM cs3;
# Delete multiple rows
# Deletes with multiple constant values in WHERE clause
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 in (-99999999999999999999999999999999999998, 99999999999999999999999999999999999999);
DELETE FROM cs2 WHERE d1 in (-9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999999);
DELETE FROM cs3 WHERE d1 in (-0.99999999999999999999999999999999999998, 0.99999999999999999999999999999999999999);
SELECT "signedtest3", d1, d2 FROM cs1;
SELECT "signedtest3", d1, d2 FROM cs2;
SELECT "signedtest3", d1, d2 FROM cs3;
# Deletes with comparison operators in WHERE clause
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 <= -99999999999999999999999999999999999998 OR d2 >= 9999999999999999998;
DELETE FROM cs2 WHERE d1 <= -9999999999999999999999999999.9999999998 OR d2 >= 999999999.9999999998;
DELETE FROM cs3 WHERE d1 <= -0.99999999999999999999999999999999999998 OR d2 >= 0.9999999999999999998;
SELECT "signedtest4a", d1, d2 FROM cs1;
SELECT "signedtest4a", d1, d2 FROM cs2;
SELECT "signedtest4a", d1, d2 FROM cs3;
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 < -99999999999999999999999999999999999998 OR d2 > 9999999999999999998;
DELETE FROM cs2 WHERE d1 < -9999999999999999999999999999.9999999998 OR d2 > 999999999.9999999998;
DELETE FROM cs3 WHERE d1 < -0.99999999999999999999999999999999999998 OR d2 > 0.9999999999999999998;
SELECT "signedtest4", d1, d2 FROM cs1;
SELECT "signedtest4", d1, d2 FROM cs2;
SELECT "signedtest4", d1, d2 FROM cs3;
# Delete with NULL in the WHERE clause
DELETE FROM cs1 WHERE d1 is NULL;
DELETE FROM cs2 WHERE d1 is NULL;
DELETE FROM cs3 WHERE d1 is NULL;
SELECT "signedtest5", d1, d2 FROM cs1;
SELECT "signedtest5", d1, d2 FROM cs2;
SELECT "signedtest5", d1, d2 FROM cs3;
# Delete with != operator
DELETE FROM cs1 WHERE d1 != 125;
DELETE FROM cs2 WHERE d1 != 1.25;
DELETE FROM cs3 WHERE d1 != 0.125;
SELECT "signedtest6", d1, d2 FROM cs1;
SELECT "signedtest6", d1, d2 FROM cs2;
SELECT "signedtest6", d1, d2 FROM cs3;
# Delete with non-constant value in the WHERE clause
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 = d2;
DELETE FROM cs2 WHERE d1 = d2;
DELETE FROM cs3 WHERE d1 = d2;
SELECT "signedtest7", d1, d2 FROM cs1;
SELECT "signedtest7", d1, d2 FROM cs2;
SELECT "signedtest7", d1, d2 FROM cs3;
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 != d2;
DELETE FROM cs2 WHERE d1 != d2;
DELETE FROM cs3 WHERE d1 != d2;
SELECT "signedtest8", d1, d2 FROM cs1;
SELECT "signedtest8", d1, d2 FROM cs2;
SELECT "signedtest8", d1, d2 FROM cs3;
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 < d2;
DELETE FROM cs2 WHERE d1 < d2;
DELETE FROM cs3 WHERE d1 < d2;
SELECT "signedtest9", d1, d2 FROM cs1;
SELECT "signedtest9", d1, d2 FROM cs2;
SELECT "signedtest9", d1, d2 FROM cs3;
CALL signeddeleteproc();
CALL signedinsertproc();
DELETE FROM cs1 WHERE d1 > d2;
DELETE FROM cs2 WHERE d1 > d2;
DELETE FROM cs3 WHERE d1 > d2;
SELECT "signedtest10", d1, d2 FROM cs1;
SELECT "signedtest10", d1, d2 FROM cs2;
SELECT "signedtest10", d1, d2 FROM cs3;
# Deletes with functions and expressions in the WHERE clause
# Repeat above tests for the unsigned case
CALL unsignedinsertproc();
# Full table delete
DELETE FROM cs4;
DELETE FROM cs5;
DELETE FROM cs6;
SELECT "unsignedtest1", d1, d2 FROM cs4;
SELECT "unsignedtest1", d1, d2 FROM cs5;
SELECT "unsignedtest1", d1, d2 FROM cs6;
# Deletes with WHERE clause
# Delete a single row with a constant value in WHERE clause
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1=99999999999999999999999999999999999998;
DELETE FROM cs4 WHERE d2=9999999999999999999;
DELETE FROM cs5 WHERE d1=9999999999999999999999999999.9999999998;
DELETE FROM cs5 WHERE d2=999999999.9999999999;
DELETE FROM cs6 WHERE d1=0.99999999999999999999999999999999999998;
DELETE FROM cs6 WHERE d2=0.9999999999999999999;
SELECT "unsignedtest2", d1, d2 FROM cs4;
SELECT "unsignedtest2", d1, d2 FROM cs5;
SELECT "unsignedtest2", d1, d2 FROM cs6;
# Delete multiple rows
# Deletes with multiple constant values in WHERE clause
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 in (99999999999999999999999999999999999998, 99999999999999999999999999999999999999);
DELETE FROM cs5 WHERE d1 in (9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999999);
DELETE FROM cs6 WHERE d1 in (0.99999999999999999999999999999999999998, 0.99999999999999999999999999999999999999);
SELECT "unsignedtest3", d1, d2 FROM cs4;
SELECT "unsignedtest3", d1, d2 FROM cs5;
SELECT "unsignedtest3", d1, d2 FROM cs6;
# Deletes with comparison operators in WHERE clause
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 >= 99999999999999999999999999999999999998 OR d2 >= 9999999999999999998;
DELETE FROM cs5 WHERE d1 >= 9999999999999999999999999999.9999999998 OR d2 >= 999999999.9999999998;
DELETE FROM cs6 WHERE d1 >= 0.99999999999999999999999999999999999998 OR d2 >= 0.9999999999999999998;
SELECT "unsignedtest4a", d1, d2 FROM cs4;
SELECT "unsignedtest4a", d1, d2 FROM cs5;
SELECT "unsignedtest4a", d1, d2 FROM cs6;
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 > 99999999999999999999999999999999999998 OR d2 > 9999999999999999998;
DELETE FROM cs5 WHERE d1 > 9999999999999999999999999999.9999999998 OR d2 > 999999999.9999999998;
DELETE FROM cs6 WHERE d1 > 0.99999999999999999999999999999999999998 OR d2 > 0.9999999999999999998;
SELECT "unsignedtest4", d1, d2 FROM cs4;
SELECT "unsignedtest4", d1, d2 FROM cs5;
SELECT "unsignedtest4", d1, d2 FROM cs6;
# Delete with NULL in the WHERE clause
DELETE FROM cs4 WHERE d1 is NULL;
DELETE FROM cs5 WHERE d1 is NULL;
DELETE FROM cs6 WHERE d1 is NULL;
SELECT "unsignedtest5", d1, d2 FROM cs4;
SELECT "unsignedtest5", d1, d2 FROM cs5;
SELECT "unsignedtest5", d1, d2 FROM cs6;
# Delete with != operator
DELETE FROM cs4 WHERE d1 != 125;
DELETE FROM cs5 WHERE d1 != 1.25;
DELETE FROM cs6 WHERE d1 != 0.125;
SELECT "unsignedtest6", d1, d2 FROM cs4;
SELECT "unsignedtest6", d1, d2 FROM cs5;
SELECT "unsignedtest6", d1, d2 FROM cs6;
# Delete with non-constant value in the WHERE clause
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 = d2;
DELETE FROM cs5 WHERE d1 = d2;
DELETE FROM cs6 WHERE d1 = d2;
SELECT "unsignedtest7", d1, d2 FROM cs4;
SELECT "unsignedtest7", d1, d2 FROM cs5;
SELECT "unsignedtest7", d1, d2 FROM cs6;
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 != d2;
DELETE FROM cs5 WHERE d1 != d2;
DELETE FROM cs6 WHERE d1 != d2;
SELECT "unsignedtest8", d1, d2 FROM cs4;
SELECT "unsignedtest8", d1, d2 FROM cs5;
SELECT "unsignedtest8", d1, d2 FROM cs6;
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 < d2;
DELETE FROM cs5 WHERE d1 < d2;
DELETE FROM cs6 WHERE d1 < d2;
SELECT "unsignedtest9", d1, d2 FROM cs4;
SELECT "unsignedtest9", d1, d2 FROM cs5;
SELECT "unsignedtest9", d1, d2 FROM cs6;
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
DELETE FROM cs4 WHERE d1 > d2;
DELETE FROM cs5 WHERE d1 > d2;
DELETE FROM cs6 WHERE d1 > d2;
SELECT "unsignedtest10", d1, d2 FROM cs4;
SELECT "unsignedtest10", d1, d2 FROM cs5;
SELECT "unsignedtest10", d1, d2 FROM cs6;
# Deletes with functions and expressions in the WHERE clause
# Clean UP
DROP PROCEDURE IF EXISTS signedinsertproc;
DROP PROCEDURE IF EXISTS signeddeleteproc;
DROP PROCEDURE IF EXISTS unsignedinsertproc;
DROP PROCEDURE IF EXISTS unsigneddeleteproc;
DROP DATABASE mcol641_delete_db;

View File

@ -0,0 +1,618 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS test_mcol641_functions;
--enable_warnings
CREATE DATABASE test_mcol641_functions;
USE test_mcol641_functions;
# bitwise functions
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38)) ENGINE=columnstore;
INSERT INTO cs1 VALUES (123, 234), (999999999999999999999999999999, -999999999999999999999999999999), (999999999999999999, -999999999999999999), (1329227995784915872903807060280344576, 1), (-1329227995784915872903807060280344576, 1);
SELECT "bitwise_and_test", d1 & d2, d1 & d1, d2 & d2, d1 & 10, d2 & 10 FROM cs1;
SELECT "bitwise_or_test", d1 | d2, d1 | d1, d2 | d2, d1 | 10, d2 | 10 FROM cs1;
SELECT "bitwise_xor_test", d1 ^ d2, d1 ^ d1, d2 ^ d2, d1 ^ 10, d2 ^ 10 FROM cs1 WHERE d1 != 999999999999999999;
SELECT "bitwise_leftshift_test", d1 << 1, d1 << 10, d1 << 20, d2 << 1, d2 << 10, d2 << 20 FROM cs1 WHERE d1 <= 999999999999999999;
SELECT "bitwise_rightshift_test", d1 >> 1, d1 >> 10, d1 >> 20, d2 >> 1, d2 >> 10, d2 >> 20 FROM cs1;
SELECT "bitcount_test", bit_count(d1), bit_count(d2) FROM cs1;
# period_diff function
DELETE FROM cs1;
INSERT INTO cs1 VALUES (2001, 2011), (199001, 199010);
SELECT "period_diff_test", PERIOD_DIFF(d1, d2), PERIOD_DIFF(d2, d1), PERIOD_DIFF(d1, d1) FROM cs1;
# cast a decimal as signed/unsigned/char
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38)) ENGINE=columnstore;
INSERT INTO cs1 VALUES (123), (-234), (99999999999999999999999999999999999999), (-99999999999999999999999999999999999999), (12345678901234567890123456789012345678), (-12345678901234567890123456789012345678), (1329227995784915872903807060280344576), (-1329227995784915872903807060280344576);
SELECT "cast_test1", CAST(d1 AS SIGNED) FROM cs1 WHERE d1 > -9223372036854775808; # -9223372036854775808 results in a NULL output
SELECT "cast_test2", CAST(d1 AS UNSIGNED), CAST(d1 AS CHAR(50)) FROM cs1;
# cast a decimal as date, datetime
DELETE FROM cs1;
INSERT INTO cs1 VALUES (20201212), (19901028183200);
SELECT "cast_test3", CAST(d1 AS DATETIME), CAST(d1 AS DATE) FROM cs1;
# cast a decimal as double
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38,10)) ENGINE=columnstore;
INSERT INTO cs1 VALUES (123), (-123), (123.456), (-123.456), (1234567890123456789012345678.9012345678), (-1234567890123456789012345678.9012345678);
SELECT "cast_test4", CAST(d1 AS DOUBLE) FROM cs1;
# cast a decimal/int/char/float/double as decimal
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 BIGINT, d5 CHAR(40), d6 FLOAT, d7 DOUBLE) ENGINE=columnstore;
INSERT INTO cs1 VALUES (123, 123.456, .123, 123, "123", 123.456, 123.456),
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, .12345678901234567890123456789012345678, 123456789012345678, "12345678901234567890123456789012345678", 1234567890.1234567890, 12345678901234567.123456789012345678),
(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, .99999999999999999999999999999999999999, 999999999999999999, "99999999999999999999999999999999999999", 9999999999.9999999999, 99999999999999999999.999999999999999999);
INSERT INTO cs1(d5) VALUES ("1.1234567890123456789012345e25");
SELECT "cast_test5", CAST(d1 as DECIMAL(38,0)), CAST(d2 as DECIMAL(38,0)), CAST(d3 as DECIMAL(38,0)), CAST(d4 as DECIMAL(38,0)), CAST(d5 as DECIMAL(38,0)), CAST(d6 as DECIMAL(38,0)), CAST(d7 as DECIMAL(38,0)) FROM cs1;
SELECT "cast_test5", CAST(d2 as DECIMAL(38,10)), CAST(d3 as DECIMAL(38,10)), CAST(d4 as DECIMAL(38,10)), CAST(d6 as DECIMAL(38,10)) FROM cs1;
SELECT "cast_test5", CAST(d3 as DECIMAL(38,38)), CAST(d6 as DECIMAL(38,38)), CAST(d7 as DECIMAL(38,38)) FROM cs1;
# inet_ntoa() and inet_aton()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38)) ENGINE=columnstore;
INSERT INTO cs1 VALUES (127), (1278), (1234567890);
SELECT "inet_test", INET_NTOA(d1) FROM cs1;
SELECT "inet_test", d1 FROM cs1 where INET_ATON(d1) = d1;
# char()
DELETE FROM cs1;
INSERT INTO cs1 VALUES (1296911693), (77);
SELECT "char_test", CHAR(d1) FROM cs1;
# string functions
INSERT INTO cs1 VALUES(20201010), (19901230), (1234), (12345);
SELECT "monthname_test", MONTHNAME(d1), SEC_TO_TIME(d1) FROM cs1;
# real functions
# abs()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38, 10), d3 DECIMAL(38, 38)) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(-123456, -123.456, -0.123456),
(-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999),
(NULL, NULL, NULL),
(-1234, -1234, -0.1234),
(1234, 1234, 0.1234);
SELECT "abs_test", ABS(d1), ABS(d2), ABS(d3) FROM cs1;
# round()/truncate()
DELETE FROM cs1;
INSERT INTO cs1 VALUES
(123456, 123.456, 0.123456),
(-123456, -123.456, -0.123456),
(9999999999999999999999999999999999999, 999999999999999999999999999.9999999999, 0.9999999999999999999999999999999999999),
(-9999999999999999999999999999999999999, -999999999999999999999999999.9999999999, -0.9999999999999999999999999999999999999),
(1234567890123456789012345679012345678, 123456789012345678901234567.9012345678, 0.1234567890123456789012345679012345678),
(-1234567890123456789012345679012345678, -123456789012345678901234567.9012345678, -0.1234567890123456789012345679012345678),
(NULL, NULL, NULL);
SELECT "round_test", ROUND(d1), ROUND(d1,5), ROUND(d1,-5), ROUND(d1,10), ROUND(d1,-10), ROUND(d1,-38) FROM cs1; #ROUND(d1,38) has a bug
SELECT "round_test", ROUND(d2), ROUND(d2,5), ROUND(d2,-5), ROUND(d2,10), ROUND(d2,-10), ROUND(d2,38), ROUND(d2,-38) FROM cs1;
SELECT "round_test", ROUND(d3), ROUND(d3,5), ROUND(d3,-5), ROUND(d3,10), ROUND(d3,-10), ROUND(d3,38), ROUND(d3,-38) FROM cs1;
SELECT "round_test", d2 FROM cs1 WHERE ROUND(d2) = "123"; # triggers getDoubleVal()
SELECT "truncate_test", TRUNCATE(d1, 0), TRUNCATE(d1,5), TRUNCATE(d1,-5), TRUNCATE(d1,10), TRUNCATE(d1,-10), TRUNCATE(d1,-38) FROM cs1; # TRUNCATE(d1,38) has a bug
SELECT "truncate_test", TRUNCATE(d2, 0), TRUNCATE(d2,5), TRUNCATE(d2,-5), TRUNCATE(d2,10), TRUNCATE(d2,-10), TRUNCATE(d2,38), TRUNCATE(d2,-38) FROM cs1;
# See MDEV-22502. Fixed now! So enabling back the test for d3.
SELECT "truncate_test", TRUNCATE(d3, 0), TRUNCATE(d3,5), TRUNCATE(d3,-5), TRUNCATE(d3,10), TRUNCATE(d3,-10), TRUNCATE(d3,38), TRUNCATE(d3,-38) FROM cs1;
SELECT "truncate_test", d2 FROM cs1 WHERE TRUNCATE(d2, 0) = "123"; # triggers getDoubleVal()
# format()
# Commenting out format() tests until MDEV-23118 is fixed.
#SELECT "format_test", FORMAT(d1, 0), FORMAT(d1, 10), FORMAT(d1, 38),
# FORMAT(d2, 0), FORMAT(d2, 10), FORMAT(d2, 38),
# FORMAT(d3, 0), FORMAT(d3, 10), FORMAT(d3, 38) FROM cs1;
# mod()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38,5), d2 DECIMAL(38,5), d3 DECIMAL(38), d4 DECIMAL(38), d5 DOUBLE) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(1234.5678, 123.456, 12345678, 123456, 123456),
(1234567890123456789012345678.90123, 1234567890123456789012345678.90123, 12345678901234567890123456789012345678, 12345678901234567890123456789012345679, 123456781234),
(-1234.5678, 123.456, -12345678, 123456, -123456),
(1234567890123456789012345678.90124, -1234567890123456789012345678.90123, 12345678901234567890123456789012345678, -12345678901234567890123456789012345679, 123456781234);
# MOD(d3,d1) is a floating point division which can result in different results from innodb due to rounding
# Also, MOD() between decimal and double is excluded from the query as we return the correct result but innodb does not.
#SELECT "mod_test", MOD(d1,d2), MOD(d2,d1), MOD(d1,d3), MOD(d3,d4), MOD(d4,d3), MOD(d1,d5), MOD(d2,d5), MOD(d3,d5), MOD(d4,d5) FROM cs1;
SELECT "mod_test", MOD(d1,d2), MOD(d2,d1), MOD(d1,d3), MOD(d3,d4), MOD(d4,d3) FROM cs1;
# floor(), ceil()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 INT, d5 DOUBLE, d6 DECIMAL(18,10)) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, 0.12345678901234567890123456789012345678, 123456, 123456.789, 12345678.9012345678),
(123456, 123456.789, 0.123456789, 123456, 123456.789, 1234.567),
# Uncomment the below 2 inserts for 999... when MDEV-23032 is fixed.
#(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 999999, 99999.999, 99999999.9999999999),
(999999, 999999.999, 0.9999999, 999999, 999999.999, 9999.999),
(999999, 999999.999, 0.9999999, 999999, 999998.999, 9999.999),
(-12345678901234567890123456789012345678, -1234567890123456789012345678.9012345678, -0.12345678901234567890123456789012345678, -123456, -123456.789, -12345678.9012345678),
(-123456, -123456.789, -0.123456789, -123456, -123456.789, -1234.567),
#(-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -999999, -99999.999, -99999999.9999999999),
(-999999, -999999.999, -0.9999999, -999999, -999999.999, -9999.999);
SELECT "floor_test", FLOOR(d1), FLOOR(d2), FLOOR(d3), FLOOR(d4), FLOOR(d5), FLOOR(d6) FROM cs1;
SELECT "floor_test", d1, d4 FROM cs1 WHERE FLOOR(d1) = FLOOR(d4); # triggers predicateoperator numericCompare()
SELECT "floor_test", d1, d4 FROM cs1 WHERE FLOOR(d1) = d4;
SELECT "floor_test", d1, d5 FROM cs1 WHERE FLOOR(d1) = FLOOR(d5);
SELECT "floor_test", d1, d5 FROM cs1 WHERE FLOOR(d1) = d5; # triggers Func_floor::getDoubleVal()
SELECT "floor_test", d1, d2 FROM cs1 WHERE FLOOR(d1) = FLOOR(d2);
SELECT "ceil_test", CEIL(d1), CEIL(d2), CEIL(d3), CEIL(d4), CEIL(d5), CEIL(d6) FROM cs1;
SELECT "ceil_test", d1, d4 FROM cs1 WHERE CEIL(d1) = CEIL(d4); # triggers predicateoperator numericCompare()
SELECT "ceil_test", d1, d4 FROM cs1 WHERE CEIL(d1) = d4;
SELECT "ceil_test", d1, d5 FROM cs1 WHERE CEIL(d1) = CEIL(d5);
SELECT "ceil_test", d1, d5 FROM cs1 WHERE CEIL(d1) = d5; # triggers Func_floor::getDoubleVal()
SELECT "ceil_test", d1, d2 FROM cs1 WHERE CEIL(d1) = CEIL(d2);
# makedate(), maketime()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 DECIMAL(20)) ENGINE=columnstore;
INSERT INTO cs1 VALUES (31, 31, 0.31, 2019), (32, 32, 0.32, 2020), (33, 34.7, 0.345, 18);
SELECT "makedatetime_test", MAKEDATE(d4, d1), MAKEDATE(d4, d2), MAKEDATE(d4, d3), MAKETIME(d4, d2, d1) FROM cs1;
# ELT()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10)) ENGINE=columnstore;
INSERT INTO cs1 VALUES (0, 0.1), (2, 2.1), (1, 1.7), (-1, -1.2);
SELECT "elt_test", ELT(d1, "FIRST", "SECOND"), ELT(d2, "FIRST", "SECOND") FROM cs1;
# least(), greatest()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 INT, d5 DOUBLE) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, 0.12345678901234567890123456789012345678, 1234, 1.23e45),
(-12345678901234567890123456789012345678, -1234567890123456789012345678.9012345678, -0.12345678901234567890123456789012345678, -1234, -1.234e40);
SELECT "greatest_test", GREATEST(d1, 12345678901234567890123456789012345679) c1, GREATEST(d2, 1234567890123456789012345678.9012345679) c2,
GREATEST(d3, 0.12345678901234567890123456789012345677) c3, GREATEST(d1, d4) c4 FROM cs1;
SELECT "greatest_test", d2 FROM cs1 WHERE GREATEST(d2, d5) = d5; # triggers getDoubleVal()
SELECT "least_test", LEAST(d1, 12345678901234567890123456789012345679) c1, LEAST(d2, 1234567890123456789012345678.9012345679) c2,
LEAST(d3, 0.12345678901234567890123456789012345677) c3, LEAST(d1, d4) c4 FROM cs1;
SELECT "least_test", d2 FROM cs1 WHERE LEAST(d2, d5) = d5; # triggers getDoubleVal()
# functor_bool: (not)between, (not)in, regexp, is(not)null, is(not)true, is(not)false
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38, 10), d3 DECIMAL(38, 38)) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(123456, 123.456, 0.123456),
(-123456, -123.456, -0.123456),
(99999999999999999999999999999999999998, 999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998),
(-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998),
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, 0.12345678901234567890123456789012345678),
(-12345678901234567890123456789012345678, -1234567890123456789012345678.9012345678, -0.12345678901234567890123456789012345678),
(0,0,0),
(NULL, NULL, NULL);
SELECT "between_test", d1 BETWEEN 123455 AND 123457 f1,
d2 BETWEEN 999999999999999999999999999.9999999997 AND 999999999999999999999999999.9999999999 f2,
d3 BETWEEN -0.12345678901234567890123456789012345679 AND -0.12345678901234567890123456789012345677 f3 FROM cs1;
SELECT "notbetween_test", d1 NOT BETWEEN 123455 AND 123457 f1,
d2 NOT BETWEEN 999999999999999999999999999.9999999997 AND 999999999999999999999999999.9999999999 f2,
d3 NOT BETWEEN -0.12345678901234567890123456789012345679 AND -0.12345678901234567890123456789012345677 f3 FROM cs1;
SELECT "in_test", d1 IN (99999999999999999999999999999999999998, -12345678901234567890123456789012345678) f1,
d2 IN (-9999999999999999999999999999.9999999998, 1234567890123456789012345678.9012345678) f2,
d3 IN (-0.99999999999999999999999999999999999998, -0.12345678901234567890123456789012345678) f3 FROM cs1;
SELECT "notin_test", d1 NOT IN (99999999999999999999999999999999999998, -12345678901234567890123456789012345678) f1,
d2 NOT IN (-9999999999999999999999999999.9999999998, 1234567890123456789012345678.9012345678) f2,
d3 NOT IN (-0.99999999999999999999999999999999999998, -0.12345678901234567890123456789012345678) f3 FROM cs1;
SELECT "regex_test", d1 REGEXP "123", d2 REGEXP "8.9", d3 REGEXP "0.9" FROM cs1;
SELECT "is(not)null_test", d1 IS NULL, d1 IS NOT NULL, d2 IS NULL, d2 IS NOT NULL, d3 IS NULL, d3 IS NOT NULL FROM cs1;
SELECT "truthfunctions_test", d1 IS TRUE AS f1, d1 IS NOT TRUE AS f2, d1 IS FALSE AS f3, d1 IS NOT FALSE AS f4,
d2 IS TRUE AS f5, d2 IS NOT TRUE AS f6, d2 IS FALSE AS f7, d2 IS NOT FALSE AS f8,
d3 IS TRUE AS f9, d3 IS NOT TRUE AS f10, d3 IS FALSE AS f11, d3 IS NOT FALSE AS f12 FROM cs1;
# if()/coalesce()
# for the case "select if(a, b, c)" where a=decimal(38), b=decimal(38,10), c=decimal(38,38),
# we can have an overflow, since the resulting column can be of type decimal(M,D) where M > 38
# which we currently do not support in ColumnStore. Same is true for coalesce.
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38, 10), d2 DECIMAL(38, 10), d3 DECIMAL(38, 10)) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(0, 1234567890123456789012345678.9012345678, -1234567890123456789012345678.9012345678),
(1234567890123456789012345678.9012345678, 0, -1234567890123456789012345678.9012345678),
(1234567890123456789012345678.9012345678, -1234567890123456789012345678.9012345678, 0),
(NULL, -9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999998),
(-9999999999999999999999999999.9999999998, NULL, 9999999999999999999999999999.9999999998),
(-9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999998, NULL),
(NULL, NULL, NULL);
SELECT "if_test", IF(d1, d2, d3) AS f1, IF(d1, d3, d2) AS f2, IF(d2, d1, d3) AS f3, IF(d2, d3, d1) AS f4,
IF(d3, d1, d2) AS f5, IF(d3, d2, d1) AS f6 FROM cs1;
SELECT "coalesce_test", COALESCE(d1, d2, d3) AS f1, COALESCE(d1, d3, d2) AS f2, COALESCE(d2, d1, d3) AS f3,
COALESCE(d2, d3, d1) AS f4, COALESCE(d3, d1, d2) AS f5, COALESCE(d3, d2, d1) AS f6 FROM cs1;
# case()
SELECT "case_test", CASE d1 WHEN 1234567890123456789012345678.9012345678 THEN d2 ELSE d3 END AS f1,
CASE d2 WHEN -1234567890123456789012345678.9012345678 THEN d1 ELSE d3 END AS f2,
CASE d3 WHEN -d1 THEN 9999999999999999999999999999.9999999999 ELSE -9999999999999999999999999999.9999999999 END AS f3
FROM cs1;
# repeat the tests for unsigned
# bitwise functions
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (123, 234), (999999999999999999999999999999, 999999999999999999999999999998), (999999999999999999, 999999999999999998), (1329227995784915872903807060280344576, 1), (1, 1329227995784915872903807060280344576);
SELECT "bitwise_and_test", d1 & d2, d1 & d1, d2 & d2, d1 & 10, d2 & 10 FROM cs1;
SELECT "bitwise_or_test", d1 | d2, d1 | d1, d2 | d2, d1 | 10, d2 | 10 FROM cs1;
# The d1 ^ d2 produces 18446744073709551614 that is the magic value for UBIGINT NULL
SELECT "bitwise_xor_test", d1 ^ d2, d1 ^ d1, d2 ^ d2, d1 ^ 10, d2 ^ 10 FROM cs1 WHERE d1 != 999999999999999999;
# The d1 << 1 produces 18446744073709551614 that is the magic value for UBIGINT NULL
SELECT "bitwise_leftshift_test", d1 << 1, d1 << 10, d1 << 20, d2 << 1, d2 << 10, d2 << 20 FROM cs1 WHERE d1 <= 999999999999999999;
SELECT "bitwise_rightshift_test", d1 >> 1, d1 >> 10, d1 >> 20, d2 >> 1, d2 >> 10, d2 >> 20 FROM cs1;
SELECT "bitcount_test", bit_count(d1), bit_count(d2) FROM cs1;
# period_diff function
DELETE FROM cs1;
INSERT INTO cs1 VALUES (2001, 2011), (199001, 199010);
SELECT "period_diff_test", PERIOD_DIFF(d1, d2), PERIOD_DIFF(d2, d1), PERIOD_DIFF(d1, d1) FROM cs1;
# cast a decimal as signed/unsigned/char
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (123), (234), (99999999999999999999999999999999999999), (99999999999999999999999999999999999998), (12345678901234567890123456789012345678), (12345678901234567890123456789012345679), (1329227995784915872903807060280344576), (1329227995784915872903807060280344577);
SELECT "cast_test1", CAST(d1 AS SIGNED) FROM cs1 WHERE d1 > 12345678901234567890123456789012345678;
SELECT "cast_test2", CAST(d1 AS UNSIGNED), CAST(d1 AS CHAR(50)) FROM cs1;
# cast a decimal as date, datetime
DELETE FROM cs1;
INSERT INTO cs1 VALUES (20201212), (19901028183200);
SELECT "cast_test3", CAST(d1 AS DATETIME), CAST(d1 AS DATE) FROM cs1;
# cast a decimal as double
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38,10) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (123), (234), (123.456), (234.567), (1234567890123456789012345678.9012345678), (9999999999999999999999999999.9999999999);
SELECT "cast_test4", CAST(d1 AS DOUBLE) FROM cs1;
# cast a decimal/int/char/float/double as decimal
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED, d4 BIGINT UNSIGNED, d5 CHAR(40), d6 FLOAT UNSIGNED, d7 DOUBLE UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (123, 123.456, .123, 123, "123", 123.456, 123.456),
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, .12345678901234567890123456789012345678, 123456789012345678, "12345678901234567890123456789012345678", 1234567890.1234567890, 12345678901234567.123456789012345678),
(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, .99999999999999999999999999999999999999, 999999999999999999, "99999999999999999999999999999999999999", 9999999999.9999999999, 99999999999999999999.999999999999999999);
INSERT INTO cs1(d5) VALUES ("1.1234567890123456789012345e25");
SELECT "cast_test5", CAST(d1 as DECIMAL(38,0)), CAST(d2 as DECIMAL(38,0)), CAST(d3 as DECIMAL(38,0)), CAST(d4 as DECIMAL(38,0)), CAST(d5 as DECIMAL(38,0)), CAST(d6 as DECIMAL(38,0)), CAST(d7 as DECIMAL(38,0)) FROM cs1;
SELECT "cast_test5", CAST(d2 as DECIMAL(38,10)), CAST(d3 as DECIMAL(38,10)), CAST(d4 as DECIMAL(38,10)), CAST(d6 as DECIMAL(38,10)) FROM cs1;
SELECT "cast_test5", CAST(d3 as DECIMAL(38,38)), CAST(d6 as DECIMAL(38,38)), CAST(d7 as DECIMAL(38,38)) FROM cs1;
# inet_ntoa() and inet_aton()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (127), (1278), (1234567890);
SELECT "inet_test", INET_NTOA(d1) FROM cs1;
SELECT "inet_test", d1 FROM cs1 where INET_ATON(d1) = d1;
# char()
DELETE FROM cs1;
INSERT INTO cs1 VALUES (1296911693), (77);
SELECT "char_test", CHAR(d1) FROM cs1;
# string functions
INSERT INTO cs1 VALUES(20201010), (19901230), (1234), (12345);
SELECT "monthname_test", MONTHNAME(d1), SEC_TO_TIME(d1) FROM cs1;
# real functions
# abs()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38, 10) UNSIGNED, d3 DECIMAL(38, 38) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(123456, 123.456, 0.123456),
(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999),
(NULL, NULL, NULL),
(1234, 1234, 0.1234),
(1234, 1234, 0.1234);
SELECT "abs_test", ABS(d1), ABS(d2), ABS(d3) FROM cs1;
# round()/truncate()
DELETE FROM cs1;
INSERT INTO cs1 VALUES
(123456, 123.456, 0.123456),
(9999999999999999999999999999999999999, 999999999999999999999999999.9999999999, 0.9999999999999999999999999999999999999),
(1234567890123456789012345679012345678, 123456789012345678901234567.9012345678, 0.1234567890123456789012345679012345678),
(NULL, NULL, NULL);
SELECT "round_test", ROUND(d1), ROUND(d1,5), ROUND(d1,-5), ROUND(d1,10), ROUND(d1,-10), ROUND(d1,-38) FROM cs1; #ROUND(d1,38) has a bug
SELECT "round_test", ROUND(d2), ROUND(d2,5), ROUND(d2,-5), ROUND(d2,10), ROUND(d2,-10), ROUND(d2,38), ROUND(d2,-38) FROM cs1;
SELECT "round_test", ROUND(d3), ROUND(d3,5), ROUND(d3,-5), ROUND(d3,10), ROUND(d3,-10), ROUND(d3,38), ROUND(d3,-38) FROM cs1;
SELECT "round_test", d2 FROM cs1 WHERE ROUND(d2) = "123"; # triggers getDoubleVal()
SELECT "truncate_test", TRUNCATE(d1, 0), TRUNCATE(d1,5), TRUNCATE(d1,-5), TRUNCATE(d1,10), TRUNCATE(d1,-10), TRUNCATE(d1,-38) FROM cs1; # TRUNCATE(d1,38) has a bug
SELECT "truncate_test", TRUNCATE(d2, 0), TRUNCATE(d2,5), TRUNCATE(d2,-5), TRUNCATE(d2,10), TRUNCATE(d2,-10), TRUNCATE(d2,38), TRUNCATE(d2,-38) FROM cs1;
# See MDEV-22502. Fixed now! So enabling back the test for d3.
SELECT "truncate_test", TRUNCATE(d3, 0), TRUNCATE(d3,5), TRUNCATE(d3,-5), TRUNCATE(d3,10), TRUNCATE(d3,-10), TRUNCATE(d3,38), TRUNCATE(d3,-38) FROM cs1;
SELECT "truncate_test", d2 FROM cs1 WHERE TRUNCATE(d2, 0) = "123"; # triggers getDoubleVal()
# format()
# Commenting out format() tests until MDEV-23118 is fixed.
#SELECT "format_test", FORMAT(d1, 0), FORMAT(d1, 10), FORMAT(d1, 38),
# FORMAT(d2, 0), FORMAT(d2, 10), FORMAT(d2, 38),
# FORMAT(d3, 0), FORMAT(d3, 10), FORMAT(d3, 38) FROM cs1;
# mod()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38,5) UNSIGNED, d2 DECIMAL(38,5) UNSIGNED, d3 DECIMAL(38) UNSIGNED, d4 DECIMAL(38) UNSIGNED, d5 DOUBLE UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(1234.5678, 123.456, 12345678, 123456, 123456),
(1234567890123456789012345678.90123, 1234567890123456789012345678.90123, 12345678901234567890123456789012345678, 12345678901234567890123456789012345679, 123456781234);
# MOD(d3,d1) is a floating point division which can result in different results from innodb due to rounding
# Also, MOD() between decimal and double is excluded from the query as we return the correct result but innodb does not.
#SELECT "mod_test", MOD(d1,d2), MOD(d2,d1), MOD(d1,d3), MOD(d3,d4), MOD(d4,d3), MOD(d1,d5), MOD(d2,d5), MOD(d3,d5), MOD(d4,d5) FROM cs1;
SELECT "mod_test", MOD(d1,d2), MOD(d2,d1), MOD(d1,d3), MOD(d3,d4), MOD(d4,d3) FROM cs1;
# floor(), ceil()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED, d4 INT UNSIGNED, d5 DOUBLE UNSIGNED, d6 DECIMAL(18,10) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, 0.12345678901234567890123456789012345678, 123456, 123456.789, 12345678.9012345678),
(123456, 123456.789, 0.123456789, 123456, 123456.789, 1234.567),
# Uncomment the below 2 inserts for 999... when MDEV-23032 is fixed.
#(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 999999, 99999.999, 99999999.9999999999),
(999999, 999999.999, 0.9999999, 999999, 999999.999, 9999.999),
(999999, 999999.999, 0.9999999, 999999, 999998.999, 9999.999);
#(-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -999999, -99999.999, -99999999.9999999999),
SELECT "floor_test", FLOOR(d1), FLOOR(d2), FLOOR(d3), FLOOR(d4), FLOOR(d5), FLOOR(d6) FROM cs1;
SELECT "floor_test", d1, d4 FROM cs1 WHERE FLOOR(d1) = FLOOR(d4); # triggers predicateoperator numericCompare()
SELECT "floor_test", d1, d4 FROM cs1 WHERE FLOOR(d1) = d4;
SELECT "floor_test", d1, d5 FROM cs1 WHERE FLOOR(d1) = FLOOR(d5);
SELECT "floor_test", d1, d5 FROM cs1 WHERE FLOOR(d1) = d5; # triggers Func_floor::getDoubleVal()
SELECT "floor_test", d1, d2 FROM cs1 WHERE FLOOR(d1) = FLOOR(d2);
SELECT "ceil_test", CEIL(d1), CEIL(d2), CEIL(d3), CEIL(d4), CEIL(d5), CEIL(d6) FROM cs1;
SELECT "ceil_test", d1, d4 FROM cs1 WHERE CEIL(d1) = CEIL(d4); # triggers predicateoperator numericCompare()
SELECT "ceil_test", d1, d4 FROM cs1 WHERE CEIL(d1) = d4;
SELECT "ceil_test", d1, d5 FROM cs1 WHERE CEIL(d1) = CEIL(d5);
SELECT "ceil_test", d1, d5 FROM cs1 WHERE CEIL(d1) = d5; # triggers Func_floor::getDoubleVal()
SELECT "ceil_test", d1, d2 FROM cs1 WHERE CEIL(d1) = CEIL(d2);
# makedate(), maketime()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED, d4 DECIMAL(20) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (31, 31, 0.31, 2019), (32, 32, 0.32, 2020), (33, 34.7, 0.345, 18);
SELECT "makedatetime_test", MAKEDATE(d4, d1), MAKEDATE(d4, d2), MAKEDATE(d4, d3), MAKETIME(d4, d2, d1) FROM cs1;
# ELT()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (0, 0.1), (2, 2.1), (1, 1.7), (1, 1.2);
SELECT "elt_test", ELT(d1, "FIRST", "SECOND"), ELT(d2, "FIRST", "SECOND") FROM cs1;
# least(), greatest()
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED, d4 INT UNSIGNED, d5 DOUBLE UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, 0.12345678901234567890123456789012345678, 1234, 1.23e45);
SELECT "greatest_test", GREATEST(d1, 12345678901234567890123456789012345679) c1, GREATEST(d2, 1234567890123456789012345678.9012345679) c2,
GREATEST(d3, 0.12345678901234567890123456789012345677) c3, GREATEST(d1, d4) c4 FROM cs1;
SELECT "greatest_test", d2 FROM cs1 WHERE GREATEST(d2, d5) = d5; # triggers getDoubleVal()
SELECT "least_test", LEAST(d1, 12345678901234567890123456789012345679) c1, LEAST(d2, 1234567890123456789012345678.9012345679) c2,
LEAST(d3, 0.12345678901234567890123456789012345677) c3, LEAST(d1, d4) c4 FROM cs1;
SELECT "least_test", d2 FROM cs1 WHERE LEAST(d2, d5) = d5; # triggers getDoubleVal()
# functor_bool: (not)between, (not)in, regexp, is(not)null, is(not)true, is(not)false
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38, 10) UNSIGNED, d3 DECIMAL(38, 38) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(123456, 123.456, 0.123456),
(99999999999999999999999999999999999998, 999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998),
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, 0.12345678901234567890123456789012345678),
(0,0,0),
(NULL, NULL, NULL);
SELECT "between_test", d1 BETWEEN 123455 AND 123457 f1,
d2 BETWEEN 999999999999999999999999999.9999999997 AND 999999999999999999999999999.9999999999 f2,
d3 BETWEEN 0.12345678901234567890123456789012345679 AND 0.12345678901234567890123456789012345677 f3 FROM cs1;
SELECT "notbetween_test", d1 NOT BETWEEN 123455 AND 123457 f1,
d2 NOT BETWEEN 999999999999999999999999999.9999999997 AND 999999999999999999999999999.9999999999 f2,
d3 NOT BETWEEN 0.12345678901234567890123456789012345679 AND 0.12345678901234567890123456789012345677 f3 FROM cs1;
SELECT "in_test", d1 IN (99999999999999999999999999999999999998, 12345678901234567890123456789012345678) f1,
d2 IN (9999999999999999999999999999.9999999998, 123.456) f2,
d3 IN (0.123456, 0.12345678901234567890123456789012345678) f3 FROM cs1;
SELECT "notin_test", d1 NOT IN (99999999999999999999999999999999999998, 12345678901234567890123456789012345678) f1,
d2 NOT IN (9999999999999999999999999999.9999999998, 123.456) f2,
d3 NOT IN (0.123456, 0.12345678901234567890123456789012345678) f3 FROM cs1;
SELECT "regex_test", d1 REGEXP "123", d2 REGEXP "8.9", d3 REGEXP "0.9" FROM cs1;
SELECT "is(not)null_test", d1 IS NULL, d1 IS NOT NULL, d2 IS NULL, d2 IS NOT NULL, d3 IS NULL, d3 IS NOT NULL FROM cs1;
SELECT "truthfunctions_test", d1 IS TRUE AS f1, d1 IS NOT TRUE AS f2, d1 IS FALSE AS f3, d1 IS NOT FALSE AS f4,
d2 IS TRUE AS f5, d2 IS NOT TRUE AS f6, d2 IS FALSE AS f7, d2 IS NOT FALSE AS f8,
d3 IS TRUE AS f9, d3 IS NOT TRUE AS f10, d3 IS FALSE AS f11, d3 IS NOT FALSE AS f12 FROM cs1;
# if()/coalesce()
# for the case "select if(a, b, c)" where a=decimal(38), b=decimal(38,10), c=decimal(38,38),
# we can have an overflow, since the resulting column can be of type decimal(M,D) where M > 38
# which we currently do not support in ColumnStore. Same is true for coalesce.
--disable_warnings
DROP TABLE IF EXISTS cs1;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38, 10) UNSIGNED, d2 DECIMAL(38, 10) UNSIGNED, d3 DECIMAL(38, 10) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(0, 1234567890123456789012345678.9012345678, 1234567890123456789012345678.9012345679),
(1234567890123456789012345678.9012345678, 0, 1234567890123456789012345678.9012345679),
(1234567890123456789012345678.9012345678, 1234567890123456789012345678.9012345679, 0),
(NULL, 9999999999999999999999999999.9999999999, 9999999999999999999999999999.9999999998),
(9999999999999999999999999999.9999999999, NULL, 9999999999999999999999999999.9999999998),
(9999999999999999999999999999.9999999999, 9999999999999999999999999999.9999999998, NULL),
(NULL, NULL, NULL);
SELECT "if_test", IF(d1, d2, d3) AS f1, IF(d1, d3, d2) AS f2, IF(d2, d1, d3) AS f3, IF(d2, d3, d1) AS f4,
IF(d3, d1, d2) AS f5, IF(d3, d2, d1) AS f6 FROM cs1;
SELECT "coalesce_test", COALESCE(d1, d2, d3) AS f1, COALESCE(d1, d3, d2) AS f2, COALESCE(d2, d1, d3) AS f3,
COALESCE(d2, d3, d1) AS f4, COALESCE(d3, d1, d2) AS f5, COALESCE(d3, d2, d1) AS f6 FROM cs1;
# case()
SELECT "case_test", CASE d1 WHEN 1234567890123456789012345678.9012345678 THEN d2 ELSE d3 END AS f1,
CASE d2 WHEN 1234567890123456789012345678.9012345679 THEN d1 ELSE d3 END AS f2,
CASE d3 WHEN d1 + 0.0000000001 THEN 9999999999999999999999999999.9999999999 ELSE -9999999999999999999999999999.9999999999 END AS f3
FROM cs1;
--disable_warnings
DROP TABLE IF EXISTS cs1;
DROP TABLE IF EXISTS cs2;
--enable_warnings
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38, 10), d3 DECIMAL(38, 38)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38, 10) UNSIGNED, d3 DECIMAL(38, 38) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(NULL, NULL, NULL),
(0,0,0),
(-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998),
(-12345678901234567890123456789012345678, -1234567890123456789012345678.9012345678, -0.12345678901234567890123456789012345678),
(-123456, -123.456, -0.123456),
(123456, 123.456, 0.123456),
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, 0.12345678901234567890123456789012345678),
(99999999999999999999999999999999999998, 999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998);
INSERT INTO cs2 VALUES
(NULL, NULL, NULL),
(0,0,0),
(123456, 123.456, 0.123456),
(12345678901234567890123456789012345678, 1234567890123456789012345678.9012345678, 0.12345678901234567890123456789012345678),
(99999999999999999999999999999999999999, 999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999);
# ACOS(), ASIN(), ATAN()
# signed
SELECT "acos_test", ACOS(d1), ACOS(d2), ACOS(d3) FROM cs1;
SELECT "asin_test", ASIN(d1), ASIN(d2), ASIN(d3) FROM cs1;
SELECT "atan_test", ATAN(d1), ATAN(d2), ATAN(d3) FROM cs1;
# unsigned
SELECT "acos_test", ACOS(d1), ACOS(d2), ACOS(d3) FROM cs2;
SELECT "asin_test", ASIN(d1), ASIN(d2), ASIN(d3) FROM cs2;
SELECT "atan_test", ATAN(d1), ATAN(d2), ATAN(d3) FROM cs2;
# SIN(), COS(), COT(), TAN()
# signed
# Remove the TRUNCATE() wrapper from the below once MCOL-4811 is fixed.
SELECT "cos_test", TRUNCATE(COS(d1), 15), COS(d2), COS(d3) FROM cs1;
SELECT "sin_test", SIN(d1), SIN(d2), SIN(d3) FROM cs1;
SELECT "tan_test", TAN(d1), TAN(d2), TAN(d3) FROM cs1;
# unsigned
# Remove the TRUNCATE() wrapper from the below once MCOL-4811 is fixed.
SELECT "cos_test", TRUNCATE(COS(d1), 15), COS(d2), COS(d3) FROM cs2;
SELECT "sin_test", SIN(d1), SIN(d2), SIN(d3) FROM cs2;
SELECT "tan_test", TAN(d1), TAN(d2), TAN(d3) FROM cs2;
# MD5(), SHA1(), SHA()
# signed
SELECT "md5_test", MD5(d1), MD5(d2), MD5(d3) FROM cs1;
SELECT "sha1_test", SHA1(d1), SHA1(d2), SHA1(d3) FROM cs1;
SELECT "sha_test", SHA(d1), SHA(d2), SHA(d3) FROM cs1;
# unsigned
SELECT "md5_test", MD5(d1), MD5(d2), MD5(d3) FROM cs2;
SELECT "sha1_test", SHA1(d1), SHA1(d2), SHA1(d3) FROM cs2;
SELECT "sha_test", SHA(d1), SHA(d2), SHA(d3) FROM cs2;
# CEILING()
# signed
SELECT "ceiling_test", CEILING(d1), CEILING(d2), CEILING(d3) FROM cs1;
# unsigned
SELECT "ceiling_test", CEILING(d1), CEILING(d2), CEILING(d3) FROM cs2;
# SIGN()
# signed
SELECT "sign_test", SIGN(d1), SIGN(d2), SIGN(d3) FROM cs1;
# unsigned
SELECT "sign_test", SIGN(d1), SIGN(d2), SIGN(d3) FROM cs2;
# CONCAT_WS(), CONV(), CONVERT()
# signed
SELECT "concat_ws_test", CONCAT_WS(' = d1, d2 = ', d1, d2) FROM cs1;
SELECT "convert_test", CONVERT(d1, SIGNED), CONVERT(d2, SIGNED), CONVERT(d3, SIGNED) FROM cs1;
SELECT "conv_test", CONV(d1, 10, 8), CONV(d2, 10, 8), CONV(d3, 10, 8) FROM cs1;
# unsigned
SELECT "concat_ws_test", CONCAT_WS(' = d2, d3 = ', d2, d3) FROM cs2;
SELECT "convert_test", CONVERT(d1, SIGNED), CONVERT(d2, SIGNED), CONVERT(d3, SIGNED) FROM cs2;
SELECT "conv_test", CONV(d1, 10, 8), CONV(d2, 10, 8), CONV(d3, 10, 8) FROM cs2;
#REVERSE(), STRCMP(), REPEAT()
# signed
SELECT "reverse_test", REVERSE(d1), REVERSE(d2), REVERSE(d3) FROM cs1;
SELECT "strcmp_test", STRCMP(d1, d2), STRCMP(d2, d3), STRCMP(d3, d1), STRCMP(d1, 123456) FROM cs1;
# unsigned
SELECT "reverse_test", REVERSE(d1), REVERSE(d2), REVERSE(d3) FROM cs2;
SELECT "strcmp_test", STRCMP(d1, d2), STRCMP(d2, d3), STRCMP(d3, d1), STRCMP(d1, 123456) FROM cs2;
SELECT "repeat_test", REPEAT(d3, 2) FROM cs2;
# CRC32(), DEGREES(), RADIANS()
# signed
SELECT "crc32_test", CRC32(d1), CRC32(d2), CRC32(d3) FROM cs1;
SELECT "degrees_test", DEGREES(d1), DEGREES(d2), DEGREES(d3) FROM cs1;
SELECT "radians_test", RADIANS(d1), RADIANS(d2), RADIANS(d3) FROM cs1;
# usigned
SELECT "crc32_test", CRC32(d1), CRC32(d2), CRC32(d3) FROM cs2;
SELECT "degrees_test", DEGREES(d1), DEGREES(d2), DEGREES(d3) FROM cs2;
SELECT "radians_test", RADIANS(d1), RADIANS(d2), RADIANS(d3) FROM cs2;
# HEX()
# signed
SELECT "hex_test", HEX(d1), HEX(d2), HEX(d3) FROM cs1;
# unsigned
SELECT "hex_test", HEX(d1), HEX(d2), HEX(d3) FROM cs2;
# INSERT()
# signed
SELECT "insert_test", INSERT(d1,6,1,d2), INSERT(d2,0,1,d3) FROM cs1;
# usigned
SELECT "insert_test", INSERT(d1,6,1,d2), INSERT(d2,0,1,d3) FROM cs2;
DROP DATABASE test_mcol641_functions;

View File

@ -0,0 +1,230 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS mcol641_insert_db;
--enable_warnings
CREATE DATABASE mcol641_insert_db;
USE mcol641_insert_db;
# Tests for inserts, as well as INSERT ... SELECT and LDI.
SET SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38),
d4 DECIMAL(19), d5 DECIMAL(19,10), d6 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED,
d4 DECIMAL(19) UNSIGNED, d5 DECIMAL(19,10) UNSIGNED, d6 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
# cs3 is same as cs1, used as the destination of INSERT...SELECT
CREATE TABLE cs3 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38),
d4 DECIMAL(19), d5 DECIMAL(19,10), d6 DECIMAL(19,19)) ENGINE=columnstore;
# cs4 is same as cs2, used as the destination of INSERT...SELECT
CREATE TABLE cs4 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED,
d4 DECIMAL(19) UNSIGNED, d5 DECIMAL(19,10) UNSIGNED, d6 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
#
# single value inserts
#
# simple inserts
INSERT INTO cs1 VALUES (125, 1.25, 0.125, 125, 1.25, 0.125);
INSERT INTO cs1 VALUES (-125, -1.25, -0.125, -125, -1.25, -0.125);
INSERT INTO cs1 VALUES (1.25, 125, 125, 1.25, 125, 125);
INSERT INTO cs1 VALUES (-1.25, -125, -125, -1.25, -125, -125);
# insert maximum positive and negative values
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998, 9999999999999999998, 999999999.9999999998, 0.9999999999999999998);
INSERT INTO cs1 values (99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 9999999999999999999, 999999999.9999999999, 0.9999999999999999999);
INSERT INTO cs1 values (-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998, -9999999999999999998, -999999999.9999999998, -0.9999999999999999998);
INSERT INTO cs1 values (-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -9999999999999999999, -999999999.9999999999, -0.9999999999999999999);
# check saturation of positive and negative values
INSERT INTO cs1 VALUES (123456789012345678901234567890123456789, 12345678901234567890123456789.12345678912, 0.123456789012345678901234567890123456789, 12345678901234567890, 1234567890.12345678901, 0.12345678901234567891);
INSERT INTO cs1 VALUES (-123456789012345678901234567890123456789, -12345678901234567890123456789.12345678912, -0.123456789012345678901234567890123456789, -12345678901234567890, -1234567890.12345678901, -0.12345678901234567891);
# check rounding when scale > 0
INSERT INTO cs1 VALUES (0, 1.12345678919, 0.123456789012345678901234567890123456789, 0, 1.12345678919, 0.12345678901234567899);
INSERT INTO cs1 VALUES (0, 1.12345678914, 0.123456789012345678901234567890123456784, 0, 1.12345678914, 0.12345678901234567894);
INSERT INTO cs1 VALUES (0, 1.99999999999, 0.999999999999999999999999999999999999999, 0, 1.99999999999, 0.99999999999999999999);
INSERT INTO cs1 VALUES (0, 1.99999999994, 0.999999999999999999999999999999999999994, 0, 1.99999999994, 0.99999999999999999994);
INSERT INTO cs1 VALUES (0, -1.12345678919, -0.123456789012345678901234567890123456789, 0, -1.12345678919, -0.12345678901234567899);
INSERT INTO cs1 VALUES (0, -1.12345678914, -0.123456789012345678901234567890123456784, 0, -1.12345678914, -0.12345678901234567894);
INSERT INTO cs1 VALUES (0, -1.99999999999, -0.999999999999999999999999999999999999999, 0, -1.99999999999, -0.99999999999999999999);
INSERT INTO cs1 VALUES (0, -1.99999999994, -0.999999999999999999999999999999999999994, 0, -1.99999999994, -0.99999999999999999994);
# insert values with leading zeros in the scale
INSERT INTO cs1 VALUES (0, 1.0000000009, 0.00000000000000000000000000000000000009, 0, 1.0000000009, 0.0000000000000000009);
INSERT INTO cs1 VALUES (0, 1.00000000009, 0.000000000000000000000000000000000000009, 0, 1.00000000009, 0.00000000000000000009);
INSERT INTO cs1 VALUES (0, -1.0000000009, -0.00000000000000000000000000000000000009, 0, -1.0000000009, -0.0000000000000000009);
INSERT INTO cs1 VALUES (0, -1.00000000009, -0.000000000000000000000000000000000000009, 0, -1.00000000009, -0.00000000000000000009);
# insert all zeros
INSERT INTO cs1 VALUES (0, 0, 0, 0, 0, 0);
# insert all nulls
INSERT INTO cs1 VALUES (NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO cs1 VALUES ();
SELECT "test1", d1, d2, d3, d4, d5, d6 FROM cs1;
#
# multi-value inserts. repeat queries for single-value inserts
#
# simple inserts
DROP TABLE IF EXISTS cs1;
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38),
d4 DECIMAL(19), d5 DECIMAL(19,10), d6 DECIMAL(19,19)) ENGINE=columnstore;
INSERT INTO cs1 VALUES (125, 1.25, 0.125, 125, 1.25, 0.125),
(-125, -1.25, -0.125, -125, -1.25, -0.125),
(1.25, 125, 125, 1.25, 125, 125),
(-1.25, -125, -125, -1.25, -125, -125);
# insert maximum positive and negative values
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998, 9999999999999999998, 999999999.9999999998, 0.9999999999999999998),
(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 9999999999999999999, 999999999.9999999999, 0.9999999999999999999),
(-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998, -9999999999999999998, -999999999.9999999998, -0.9999999999999999998),
(-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -9999999999999999999, -999999999.9999999999, -0.9999999999999999999);
# check saturation of positive and negative values
INSERT INTO cs1 VALUES (123456789012345678901234567890123456789, 12345678901234567890123456789.12345678912, 0.123456789012345678901234567890123456789, 12345678901234567890, 1234567890.12345678901, 0.12345678901234567891),
(-123456789012345678901234567890123456789, -12345678901234567890123456789.12345678912, -0.123456789012345678901234567890123456789, -12345678901234567890, -1234567890.12345678901, -0.12345678901234567891);
# check rounding when scale > 0
INSERT INTO cs1 VALUES (0, 1.12345678919, 0.123456789012345678901234567890123456789, 0, 1.12345678919, 0.12345678901234567899),
(0, 1.12345678914, 0.123456789012345678901234567890123456784, 0, 1.12345678914, 0.12345678901234567894),
(0, 1.99999999999, 0.999999999999999999999999999999999999999, 0, 1.99999999999, 0.99999999999999999999),
(0, 1.99999999994, 0.999999999999999999999999999999999999994, 0, 1.99999999994, 0.99999999999999999994),
(0, -1.12345678919, -0.123456789012345678901234567890123456789, 0, -1.12345678919, -0.12345678901234567899),
(0, -1.12345678914, -0.123456789012345678901234567890123456784, 0, -1.12345678914, -0.12345678901234567894),
(0, -1.99999999999, -0.999999999999999999999999999999999999999, 0, -1.99999999999, -0.99999999999999999999),
(0, -1.99999999994, -0.999999999999999999999999999999999999994, 0, -1.99999999994, -0.99999999999999999994);
# insert values with leading zeros in the scale
INSERT INTO cs1 VALUES (0, 1.0000000009, 0.00000000000000000000000000000000000009, 0, 1.0000000009, 0.0000000000000000009),
(0, 1.00000000009, 0.000000000000000000000000000000000000009, 0, 1.00000000009, 0.00000000000000000009),
(0, -1.0000000009, -0.00000000000000000000000000000000000009, 0, -1.0000000009, -0.0000000000000000009),
(0, -1.00000000009, -0.000000000000000000000000000000000000009, 0, -1.00000000009, -0.00000000000000000009);
# insert all zeros and nulls
INSERT INTO cs1 VALUES (0, 0, 0, 0, 0, 0),
(NULL, NULL, NULL, NULL, NULL, NULL);
# insert values with digits interleaved with 0s
INSERT INTO cs1 VALUES (12345678901234567890123456789000000001, 1234567890123456789012345678.0010000008, 0.00001000000000000000000000000000000009, 1234567890120000001, 123456789.0020000009, 0.0000000070000000009),
(-12345678901234567890123456789000000001, -1234567890123456789012345678.0010000008, -0.00001000000000000000000000000000000009, -1234567890120000001, -123456789.0020000009, -0.0000000070000000009);
SELECT "test2", d1, d2, d3, d4, d5, d6 FROM cs1;
# INSERT ... SELECT
INSERT INTO cs3 SELECT * FROM cs1;
SELECT "insert_select_test1", d1, d2, d3, d4, d5, d6 FROM cs3;
# LDI
--exec rm -f /tmp/wide_decimal_ldi.txt
SELECT * FROM cs3 INTO OUTFILE '/tmp/wide_decimal_ldi.txt' FIELDS TERMINATED BY ',';
DELETE FROM cs3;
LOAD DATA LOCAL INFILE '/tmp/wide_decimal_ldi.txt' INTO TABLE cs3 FIELDS TERMINATED BY ',';
SELECT "ldi_test1", d1, d2, d3, d4, d5, d6 FROM cs3;
# unsigned case. repeat queries for signed case here
# single value inserts
# simple inserts
INSERT INTO cs2 VALUES (125, 1.25, 0.125, 125, 1.25, 0.125);
INSERT INTO cs2 VALUES (-125, -1.25, -0.125, -125, -1.25, -0.125);
INSERT INTO cs2 VALUES (1.25, 125, 125, 1.25, 125, 125);
INSERT INTO cs2 VALUES (-1.25, -125, -125, -1.25, -125, -125);
# insert maximum positive and negative values
INSERT INTO cs2 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998, 9999999999999999998, 999999999.9999999998, 0.9999999999999999998);
INSERT INTO cs2 values (99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 9999999999999999999, 999999999.9999999999, 0.9999999999999999999);
INSERT INTO cs2 values (-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998, -9999999999999999998, -999999999.9999999998, -0.9999999999999999998);
INSERT INTO cs2 values (-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -9999999999999999999, -999999999.9999999999, -0.9999999999999999999);
# check saturation of positive and negative values
INSERT INTO cs2 VALUES (123456789012345678901234567890123456789, 12345678901234567890123456789.12345678912, 0.123456789012345678901234567890123456789, 12345678901234567890, 1234567890.12345678901, 0.12345678901234567891);
INSERT INTO cs2 VALUES (-123456789012345678901234567890123456789, -12345678901234567890123456789.12345678912, -0.123456789012345678901234567890123456789, -12345678901234567890, -1234567890.12345678901, -0.12345678901234567891);
# check rounding when scale > 0
INSERT INTO cs2 VALUES (0, 1.12345678919, 0.123456789012345678901234567890123456789, 0, 1.12345678919, 0.12345678901234567899);
INSERT INTO cs2 VALUES (0, 1.12345678914, 0.123456789012345678901234567890123456784, 0, 1.12345678914, 0.12345678901234567894);
INSERT INTO cs2 VALUES (0, 1.99999999999, 0.999999999999999999999999999999999999999, 0, 1.99999999999, 0.99999999999999999999);
INSERT INTO cs2 VALUES (0, 1.99999999994, 0.999999999999999999999999999999999999994, 0, 1.99999999994, 0.99999999999999999994);
INSERT INTO cs2 VALUES (0, -1.12345678919, -0.123456789012345678901234567890123456789, 0, -1.12345678919, -0.12345678901234567899);
INSERT INTO cs2 VALUES (0, -1.12345678914, -0.123456789012345678901234567890123456784, 0, -1.12345678914, -0.12345678901234567894);
INSERT INTO cs2 VALUES (0, -1.99999999999, -0.999999999999999999999999999999999999999, 0, -1.99999999999, -0.99999999999999999999);
INSERT INTO cs2 VALUES (0, -1.99999999994, -0.999999999999999999999999999999999999994, 0, -1.99999999994, -0.99999999999999999994);
# insert values with leading zeros in the scale
INSERT INTO cs2 VALUES (0, 1.0000000009, 0.00000000000000000000000000000000000009, 0, 1.0000000009, 0.0000000000000000009);
INSERT INTO cs2 VALUES (0, 1.00000000009, 0.000000000000000000000000000000000000009, 0, 1.00000000009, 0.00000000000000000009);
INSERT INTO cs2 VALUES (0, -1.0000000009, -0.00000000000000000000000000000000000009, 0, -1.0000000009, -0.0000000000000000009);
INSERT INTO cs2 VALUES (0, -1.00000000009, -0.000000000000000000000000000000000000009, 0, -1.00000000009, -0.00000000000000000009);
# insert all zeros
INSERT INTO cs2 VALUES (0, 0, 0, 0, 0, 0);
# insert all nulls
INSERT INTO cs2 VALUES (NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO cs2 VALUES ();
SELECT "test3", d1, d2, d3, d4, d5, d6 FROM cs2;
# multi-value inserts. repeat queries for single-value inserts
# simple inserts
DROP TABLE IF EXISTS cs2;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED,
d4 DECIMAL(19) UNSIGNED, d5 DECIMAL(19,10) UNSIGNED, d6 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs2 VALUES (125, 1.25, 0.125, 125, 1.25, 0.125),
(-125, -1.25, -0.125, -125, -1.25, -0.125),
(1.25, 125, 125, 1.25, 125, 125),
(-1.25, -125, -125, -1.25, -125, -125);
# insert maximum positive and negative values
INSERT INTO cs2 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998, 9999999999999999998, 999999999.9999999998, 0.9999999999999999998),
(99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999, 9999999999999999999, 999999999.9999999999, 0.9999999999999999999),
(-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998, -9999999999999999998, -999999999.9999999998, -0.9999999999999999998),
(-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999, -9999999999999999999, -999999999.9999999999, -0.9999999999999999999);
# check saturation of positive and negative values
INSERT INTO cs2 VALUES (123456789012345678901234567890123456789, 12345678901234567890123456789.12345678912, 0.123456789012345678901234567890123456789, 12345678901234567890, 1234567890.12345678901, 0.12345678901234567891),
(-123456789012345678901234567890123456789, -12345678901234567890123456789.12345678912, -0.123456789012345678901234567890123456789, -12345678901234567890, -1234567890.12345678901, -0.12345678901234567891);
# check rounding when scale > 0
INSERT INTO cs2 VALUES (0, 1.12345678919, 0.123456789012345678901234567890123456789, 0, 1.12345678919, 0.12345678901234567899),
(0, 1.12345678914, 0.123456789012345678901234567890123456784, 0, 1.12345678914, 0.12345678901234567894),
(0, 1.99999999999, 0.999999999999999999999999999999999999999, 0, 1.99999999999, 0.99999999999999999999),
(0, 1.99999999994, 0.999999999999999999999999999999999999994, 0, 1.99999999994, 0.99999999999999999994),
(0, -1.12345678919, -0.123456789012345678901234567890123456789, 0, -1.12345678919, -0.12345678901234567899),
(0, -1.12345678914, -0.123456789012345678901234567890123456784, 0, -1.12345678914, -0.12345678901234567894),
(0, -1.99999999999, -0.999999999999999999999999999999999999999, 0, -1.99999999999, -0.99999999999999999999),
(0, -1.99999999994, -0.999999999999999999999999999999999999994, 0, -1.99999999994, -0.99999999999999999994);
# insert values with leading zeros in the scale
INSERT INTO cs2 VALUES (0, 1.0000000009, 0.00000000000000000000000000000000000009, 0, 1.0000000009, 0.0000000000000000009),
(0, 1.00000000009, 0.000000000000000000000000000000000000009, 0, 1.00000000009, 0.00000000000000000009),
(0, -1.0000000009, -0.00000000000000000000000000000000000009, 0, -1.0000000009, -0.0000000000000000009),
(0, -1.00000000009, -0.000000000000000000000000000000000000009, 0, -1.00000000009, -0.00000000000000000009);
# insert all zeros and nulls
INSERT INTO cs2 VALUES (0, 0, 0, 0, 0, 0),
(NULL, NULL, NULL, NULL, NULL, NULL);
# insert values with digits interleaved with 0s
INSERT INTO cs2 VALUES (12345678901234567890123456789000000001, 1234567890123456789012345678.0010000008, 0.00001000000000000000000000000000000009, 1234567890120000001, 123456789.0020000009, 0.0000000070000000009),
(-12345678901234567890123456789000000001, -1234567890123456789012345678.0010000008, -0.00001000000000000000000000000000000009, -1234567890120000001, -123456789.0020000009, -0.0000000070000000009);
SELECT "test4", d1, d2, d3, d4, d5, d6 FROM cs2;
# INSERT ... SELECT
INSERT INTO cs4 SELECT * FROM cs2;
SELECT "insert_select_test2", d1, d2, d3, d4, d5, d6 FROM cs4;
# LDI
--exec rm -f /tmp/wide_decimal_ldi.txt
SELECT * FROM cs4 INTO OUTFILE '/tmp/wide_decimal_ldi.txt' FIELDS TERMINATED BY ',';
DELETE FROM cs4;
LOAD DATA LOCAL INFILE '/tmp/wide_decimal_ldi.txt' INTO TABLE cs4 FIELDS TERMINATED BY ',';
SELECT "ldi_test2", d1, d2, d3, d4, d5, d6 FROM cs4;
# Clean UP
SET SQL_MODE=default;
--exec rm -f /tmp/wide_decimal_ldi.txt
DROP DATABASE mcol641_insert_db;

View File

@ -0,0 +1,45 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS mcol641_joins_db;
--enable_warnings
CREATE DATABASE mcol641_joins_db;
USE mcol641_joins_db;
--disable_query_log
SET default_storage_engine=ColumnStore;
--enable_query_log
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38)) ENGINE=columnstore;
CREATE TABLE cs2 (de1 DECIMAL(38,38), de2 DECIMAL(38,10)) ENGINE=columnstore;
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998);
INSERT INTO cs1 VALUES (12345678901234567890123456789012345678, 1234567890123456789012345678.1234567890, 0.12345678901234567890123456789012345678);
INSERT INTO cs1 VALUES (-12345678901234567890123456789012345678, -1234567890123456789012345678.1234567890, -0.12345678901234567890123456789012345678);
INSERT INTO cs1 VALUES (0, 1.1234567891, 0.1234567890123456789012345678912345);
INSERT INTO cs2 values (0.99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998);
INSERT INTO cs2 VALUES (0.12345678901234567890123456789012345678, 1234567890123456789012345678.0123456789);
INSERT INTO cs2 VALUES (-0.12345678901234567890123456789012345678, -1234567890123456789012345678.0123456789);
INSERT INTO cs2 VALUES (0.12345678901234567890123456789, 1.1234567891);
SELECT cs1.d1, cs1.d2, cs2.de1 FROM cs1 INNER JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 1;
SELECT cs2.de1, cs1.d1, cs1.d2 FROM cs1 INNER JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
SELECT cs2.de2, cs1.d1, cs1.d3, cs2.de1 FROM cs1 LEFT JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 2;
SELECT cs1.d3, cs1.d1, cs1.d2, cs2.de2 FROM cs1 LEFT JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
SELECT cs1.d1, cs1.d3, cs2.de1, cs2.de2 FROM cs1 RIGHT JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 3;
SELECT cs2.de1, cs2.de2, cs1.d1, cs1.d2 FROM cs1 RIGHT JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
SELECT * FROM cs1 WHERE cs1.d2 IN (SELECT cs2.de2 FROM cs2 WHERE cs2.de2 = cs1.d2) ORDER BY 1;
SELECT * FROM cs2 WHERE cs2.de2 IN (SELECT cs1.d2 FROM cs1 WHERE cs1.d2 = cs2.de2) ORDER BY 1;
SELECT * FROM cs1 WHERE cs1.d3 IN (SELECT cs2.de1 FROM cs2 WHERE cs2.de1 = cs1.d3) ORDER BY 1;
SELECT * FROM cs2 WHERE cs2.de1 IN (SELECT cs1.d3 FROM cs1 WHERE cs1.d3 = cs2.de1) ORDER BY 1;
SELECT count(*) FROM cs1 where exists (SELECT cs2.de2 FROM cs2 WHERE cs1.d2=cs2.de2);
SELECT count(*) FROM cs2 where not exists (SELECT cs1.d2 FROM cs1 WHERE cs1.d2=cs2.de2);
# Clean UP
DROP DATABASE mcol641_joins_db;

View File

@ -0,0 +1,328 @@
-- source ../include/have_columnstore.inc
-- source ../include/enable_ordered_only.inc
--disable_warnings
DROP DATABASE IF EXISTS mcol641_joins_db;
--enable_warnings
CREATE DATABASE mcol641_joins_db;
USE mcol641_joins_db;
--disable_query_log
SET default_storage_engine=ColumnStore;
--enable_query_log
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(37), id TINYINT);
CREATE TABLE cs2 (i1 SMALLINT, i2 MEDIUMINT, i3 INT, i4 BIGINT);
INSERT INTO cs1 VALUES
(99,0,1),
(255,254,2),
(254,253,3),
(252,253,4),
(65535,2147483647,5),
(65534,2147483646,6),
(65533,65532,7),
(2147483647,2147483636,8),
(2147483646,2147483635,9),
(2147483645,2147483634,10),
(2147483645,9223372036854775804,11),
(9223372036854775807,0,12),
(9223372036854775807,2147483627,13),
(9223372036854775806,2147483626,14),
(9223372036854775805,9223372036854775704,15);
INSERT INTO cs2 VALUES
(255,254,NULL,NULL),
(254,253,NULL,NULL),
(251,251,NULL,NULL),
(NULL,65535,NULL,NULL),
(NULL,65535,2147483647,NULL),
(NULL,65534,2147483646,NULL),
(NULL,0,2147483641,NULL),
(NULL,NULL,2147483647,NULL),
(NULL,NULL,2147483647,2147483636),
(NULL,NULL,2147483646,2147483635),
(NULL,NULL,0,2147483641),
(NULL,NULL,NULL,9223372036854775807),
(NULL,NULL,2147483627,9223372036854775807),
(NULL,NULL,2147483626,9223372036854775806),
(NULL,NULL,0,1);
# Distributed PrimProc-based JOINs
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1 = cs2.i1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1 = cs2.i1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1 = cs2.i2 ORDER BY id,i3;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1 = cs2.i2 ORDER BY id,i3;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1 = cs2.i3 ORDER BY id,i2,i4;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1 = cs2.i3 ORDER BY id,i2,i4;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1 = cs2.i4 AND cs2.i3 IS NOT NULL ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1 = cs2.i4 AND cs2.i3 IS NOT NULL ORDER BY id;
# PrimProc-based composite key JOINs
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1 = cs2.i1 AND cs1.d2 = cs2.i2 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1 = cs2.i1 AND cs1.d2 = cs2.i2 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1 = cs2.i2 AND cs1.d2 = cs2.i3 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1 = cs2.i2 AND cs1.d2 = cs2.i3 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1 = cs2.i3 AND cs1.d2 = cs2.i4 ORDER BY id,i2,i4;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1 = cs2.i3 AND cs1.d2 = cs2.i4 ORDER BY id,i2,i4;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1 = cs2.i4 AND cs1.d2 = cs2.i3 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1 = cs2.i4 AND cs1.d2 = cs2.i3 ORDER BY id;
# ExeMgr-based JOINs
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 INNER JOIN (SELECT * FROM cs2)s2 ON s1.d1=s2.i1 ORDER BY id,i2;
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 INNER JOIN (SELECT * FROM cs1)s1 ON s1.d1=s2.i1 ORDER BY id,i2;
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 INNER JOIN (SELECT * FROM cs2)s2 ON s1.d1=s2.i2 ORDER BY id,i3;
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 INNER JOIN (SELECT * FROM cs1)s1 ON s1.d1=s2.i2 ORDER BY id,i3;
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 INNER JOIN (SELECT * FROM cs2)s2 ON s1.d1=s2.i3 ORDER BY id,i2,i4;
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 INNER JOIN (SELECT * FROM cs1)s1 ON s1.d1=s2.i3 ORDER BY id,i2,i4;
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 INNER JOIN (SELECT * FROM cs2)s2 ON s1.d1=s2.i4 AND s2.i3 IS NOT NULL ORDER BY id,i3;
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 INNER JOIN (SELECT * FROM cs1)s1 ON s1.d1=s2.i4 AND s2.i3 IS NOT NULL ORDER BY id,i3;
# Functional JOIN
# Distributed PrimProc-based functional JOINs
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1-1 = cs2.i1-1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1-1 = cs2.i1-1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1-1 = cs2.i2-1 ORDER BY id,i3;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1-1 = cs2.i2-1 ORDER BY id,i3;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1-1 = cs2.i3-1 ORDER BY id,i2,i4;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1-1 = cs2.i3-1 ORDER BY id,i2,i4;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1-1 = cs2.i4-1 AND cs2.i3 IS NOT NULL ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1-1 = cs2.i4-1 AND cs2.i3 IS NOT NULL ORDER BY id;
# PrimProc-based composite key JOINs
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1-1= cs2.i1-1 AND cs1.d2-1= cs2.i2-1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1-1= cs2.i1-1 AND cs1.d2-1= cs2.i2-1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1-1= cs2.i2-1 AND cs1.d2-1= cs2.i3-1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1-1= cs2.i2-1 AND cs1.d2-1= cs2.i3-1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1-1= cs2.i3-1 AND cs1.d2-1= cs2.i4-1 ORDER BY id,i2,i4;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1-1= cs2.i3-1 AND cs1.d2-1= cs2.i4-1 ORDER BY id,i2,i4;
SELECT cs1.*, cs2.* FROM cs1 INNER JOIN cs2 ON cs1.d1-1= cs2.i4-1 AND cs1.d2-1= cs2.i3-1 ORDER BY id;
SELECT cs1.*, cs2.* FROM cs2 INNER JOIN cs1 ON cs1.d1-1= cs2.i4-1 AND cs1.d2-1= cs2.i3-1 ORDER BY id;
# ExeMgr-based JOINs
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 INNER JOIN (SELECT * FROM cs2)s2 ON s1.d1-1=s2.i1-1 ORDER BY id,i2;
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 INNER JOIN (SELECT * FROM cs1)s1 ON s1.d1-1=s2.i1-1 ORDER BY id,i2;
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 INNER JOIN (SELECT * FROM cs2)s2 ON s1.d1-1=s2.i2-1 ORDER BY id,i3;
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 INNER JOIN (SELECT * FROM cs1)s1 ON s1.d1-1=s2.i2-1 ORDER BY id,i3;
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 INNER JOIN (SELECT * FROM cs2)s2 ON s1.d1-1=s2.i3-1 ORDER BY id,i2,i4;
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 INNER JOIN (SELECT * FROM cs1)s1 ON s1.d1-1=s2.i3-1 ORDER BY id,i2,i4;
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 INNER JOIN (SELECT * FROM cs2)s2 ON s1.d1-1=s2.i4-1 AND s2.i3 IS NOT NULL ORDER BY id,i3;
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 INNER JOIN (SELECT * FROM cs1)s1 ON s1.d1-1=s2.i4-1 AND s2.i3 IS NOT NULL ORDER BY id,i3;
-- source ../include/disable_ordered_only.inc
# Skewed OUTER JOIN
TRUNCATE cs1;
TRUNCATE cs2;
INSERT INTO cs1 VALUES
(99,0,1),
(255,254,2),
(254,253,3),
(252,253,4),
(-252,253,5),
(65535,2147483647,5),
(65534,2147483646,6),
(65533,65532,7),
(2147483647,2147483636,8),
(2147483646,2147483635,9),
(2147483645,2147483634,10),
(2147483645,9223372036854775804,11),
(9223372036854775807,0,12),
(9223372036854775807,2147483627,13),
(9223372036854775806,2147483626,14),
(9223372036854775805,9223372036854775704,15);
INSERT INTO cs2 VALUES
(255,254,NULL,NULL),
(254,253,NULL,NULL),
(251,251,NULL,NULL),
(-252,253,NULL,NULL),
(-250,253,NULL,NULL),
(NULL,65535,NULL,NULL),
(NULL,65535,2147483647,NULL),
(NULL,65534,2147483646,NULL),
(NULL,0,2147483641,NULL),
(NULL,NULL,2147483647,NULL),
(NULL,NULL,2147483647,2147483636),
(NULL,NULL,2147483646,2147483635),
(NULL,NULL,0,2147483641),
(NULL,NULL,NULL,9223372036854775807),
(NULL,NULL,2147483627,9223372036854775807),
(NULL,NULL,2147483626,9223372036854775806),
(NULL,NULL,0,1);
# Distributed PrimProc-based JOINs
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1 = cs2.i1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1 = cs2.i1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1 = cs2.i2 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1 = cs2.i2 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1 = cs2.i3 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1 = cs2.i3 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1 = cs2.i4 AND cs2.i3 IS NOT NULL ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1 = cs2.i4 AND cs2.i3 IS NOT NULL ;
# PrimProc-based composite key JOINs
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1 = cs2.i1 AND cs1.d2 = cs2.i2 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1 = cs2.i1 AND cs1.d2 = cs2.i2 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1 = cs2.i2 AND cs1.d2 = cs2.i3 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1 = cs2.i2 AND cs1.d2 = cs2.i3 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1 = cs2.i3 AND cs1.d2 = cs2.i4 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1 = cs2.i3 AND cs1.d2 = cs2.i4 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1 = cs2.i4 AND cs1.d2 = cs2.i3 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1 = cs2.i4 AND cs1.d2 = cs2.i3 ;
# ExeMgr-based JOINs
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 LEFT JOIN (SELECT * FROM cs2)s2 ON s1.d1=s2.i1 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 LEFT JOIN (SELECT * FROM cs1)s1 ON s1.d1=s2.i1 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 LEFT JOIN (SELECT * FROM cs2)s2 ON s1.d1=s2.i2 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 LEFT JOIN (SELECT * FROM cs1)s1 ON s1.d1=s2.i2 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 LEFT JOIN (SELECT * FROM cs2)s2 ON s1.d1=s2.i3 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 LEFT JOIN (SELECT * FROM cs1)s1 ON s1.d1=s2.i3 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 LEFT JOIN (SELECT * FROM cs2)s2 ON s1.d1=s2.i4 AND s2.i3 IS NOT NULL ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 LEFT JOIN (SELECT * FROM cs1)s1 ON s1.d1=s2.i4 AND s2.i3 IS NOT NULL ;
# Functional JOIN
# Distributed PrimProc-based functional JOINs
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1-1 = cs2.i1-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1-1 = cs2.i1-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1-1 = cs2.i2-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1-1 = cs2.i2-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1-1 = cs2.i3-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1-1 = cs2.i3-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1-1 = cs2.i4-1 AND cs2.i3 IS NOT NULL ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1-1 = cs2.i4-1 AND cs2.i3 IS NOT NULL ;
# PrimProc-based composite key JOINs
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1-1= cs2.i1-1 AND cs1.d2-1= cs2.i2-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1-1= cs2.i1-1 AND cs1.d2-1= cs2.i2-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1-1= cs2.i2-1 AND cs1.d2-1= cs2.i3-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1-1= cs2.i2-1 AND cs1.d2-1= cs2.i3-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1-1= cs2.i3-1 AND cs1.d2-1= cs2.i4-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1-1= cs2.i3-1 AND cs1.d2-1= cs2.i4-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs1 LEFT JOIN cs2 ON cs1.d1-1= cs2.i4-1 AND cs1.d2-1= cs2.i3-1 ;
--sorted_result
SELECT cs1.*, cs2.* FROM cs2 LEFT JOIN cs1 ON cs1.d1-1= cs2.i4-1 AND cs1.d2-1= cs2.i3-1 ;
# ExeMgr-based JOINs
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 LEFT JOIN (SELECT * FROM cs2)s2 ON s1.d1-1=s2.i1-1 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 LEFT JOIN (SELECT * FROM cs1)s1 ON s1.d1-1=s2.i1-1 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 LEFT JOIN (SELECT * FROM cs2)s2 ON s1.d1-1=s2.i2-1 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 LEFT JOIN (SELECT * FROM cs1)s1 ON s1.d1-1=s2.i2-1 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 LEFT JOIN (SELECT * FROM cs2)s2 ON s1.d1-1=s2.i3-1 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 LEFT JOIN (SELECT * FROM cs1)s1 ON s1.d1-1=s2.i3-1 ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs1)s1 LEFT JOIN (SELECT * FROM cs2)s2 ON s1.d1-1=s2.i4-1 AND s2.i3 IS NOT NULL ;
--sorted_result
SELECT s1.*,s2.* FROM (SELECT * FROM cs2)s2 LEFT JOIN (SELECT * FROM cs1)s1 ON s1.d1-1=s2.i4-1 AND s2.i3 IS NOT NULL ;
# Misc skewed JOIN
CREATE TABLE t1 (a DECIMAL(10,1), b DECIMAL(20,1));
INSERT INTO t1 VALUES (10.1,20.1);
CREATE TABLE t2 (a DECIMAL(20,1), b DECIMAL(10,1));
INSERT INTO t2 VALUES (10.1,20.1);
SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
DROP TABLE t1,t2;
CREATE TABLE t1 (a CHAR(10), b DECIMAL(10,1));
INSERT INTO t1 VALUES (10.1,20.1);
CREATE TABLE t2 (a CHAR(10), b DECIMAL(20,1));
INSERT INTO t2 VALUES (10.1,20.1);
SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
SELECT * FROM t2,t1 WHERE t1.a=t2.a AND t1.b=t2.b;
DROP TABLE t1,t2;
CREATE TABLE t1 (a DECIMAL(10,1), b CHAR(10));
INSERT INTO t1 VALUES (10.1,20.1);
CREATE TABLE t2 (a DECIMAL(20,1), b CHAR(10));
INSERT INTO t2 VALUES (10.1,20.1);
SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
SELECT * FROM t2,t1 WHERE t1.a=t2.a AND t1.b=t2.b;
SELECT * FROM t2,t1 WHERE (t1.a,t1.b)=(t2.a,t2.b);
SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
SELECT * FROM t1 JOIN t2 USING (a,b);
SELECT * FROM t2 JOIN t1 USING (a,b);
# Testing the max number of skewed columns in a join.
DROP TABLE t1,t2;
CREATE TABLE t1 (a DECIMAL(10,1), b DECIMAL(20,1),a1 DECIMAL(10,1), b1 DECIMAL(20,1),a2 DECIMAL(10,1), b2 DECIMAL(20,1),a3 DECIMAL(10,1), b3 DECIMAL(20,1),a4 DECIMAL(10,1), b4 DECIMAL(20,1),a5 DECIMAL(10,1));
INSERT INTO t1 VALUES (10.1,20.1,10.1,20.1,10.1,20.1,10.1,20.1,10.1,20.1,10.1);
CREATE TABLE t2 (a DECIMAL(20,1), b DECIMAL(10,1),a1 DECIMAL(20,1), b1 DECIMAL(10,1),a2 DECIMAL(20,1), b2 DECIMAL(10,1),a3 DECIMAL(20,1), b3 DECIMAL(10,1),a4 DECIMAL(20,1), b4 DECIMAL(10,1),a5 DECIMAL(20,1));
INSERT INTO t2 VALUES (10.1,20.1,10.1,20.1,10.1,20.1,10.1,20.1,10.1,20.1,10.1);
# These work b/c the max is 10 columns.
SELECT * FROM t1 INNER JOIN t2 USING(a,b,a1,b1,a2,b2,a3,b3,a4);
SELECT * FROM t2 INNER JOIN t1 USING(a,b,a1,b1,a2,b2,a3,b3,a4);
# These do not.
#SELECT * FROM t1 INNER JOIN t2 USING(a,b,a1,b1,a2,b2,a3,b3,a4,b4,a5);
#SELECT * FROM t1 INNER JOIN t2 USING(a,b,a1,b1,a2,b2,a3,b3,a4,b4,a5);
# Mixing skewed columns with non-skewed.
DROP TABLE t1,t2;
CREATE TABLE t1 (a DECIMAL(10,1), t text, b DECIMAL(20,1), i1 int, a1 DECIMAL(10,1), b1 DECIMAL(20,1),a2 DECIMAL(10,1), b2 DECIMAL(20,1),a3 DECIMAL(10,1), b3 DECIMAL(20,1),a4 DECIMAL(10,1), b4 DECIMAL(20,1),a5 DECIMAL(10,1));
INSERT INTO t1 VALUES (10.1,'some',20.1,42,10.1,20.1,10.1,20.1,10.1,20.1,10.1,20.1,10.1);
CREATE TABLE t2 (a DECIMAL(20,1), b DECIMAL(10,1), t text, a1 DECIMAL(20,1), i1 int, b1 DECIMAL(10,1),a2 DECIMAL(20,1), b2 DECIMAL(10,1),a3 DECIMAL(20,1), b3 DECIMAL(10,1),a4 DECIMAL(20,1), b4 DECIMAL(10,1),a5 DECIMAL(20,1));
INSERT INTO t2 VALUES (10.1,20.1,'some',10.1,42,20.1,10.1,20.1,10.1,20.1,10.1,20.1,10.1);
# These work b/c the max is 10 columns.
SELECT * FROM t1 INNER JOIN t2 USING(a,b,a1,b1,a2,b2,a3,b3,a4,b4,t,i1);
SELECT * FROM t2 INNER JOIN t1 USING(a,b,a1,b1,a2,b2,a3,b3,a4,b4,t,i1);
# These do not.
#SELECT * FROM t1 INNER JOIN t2 USING(a,b,a1,b1,a2,b2,a3,b3,a4,b4,a5,t,i1);
#SELECT * FROM t2 INNER JOIN t1 USING(a,b,a1,b1,a2,b2,a3,b3,a4,b4,a5,t,i1);
SELECT t1.a,t1.t,t1.i1 FROM t1 INNER JOIN (SELECT * from t2) s1 USING(a,b);
SELECT t2.a,t2.t,s1.i1 FROM t2 INNER JOIN (SELECT * from t1) s1 USING(a,b);
SELECT t1.a,t1.t,t1.i1 FROM t1 INNER JOIN (SELECT * from t2) s1 where t1.a+1=s1.a+1 and t1.b+1=s1.b+1;
SELECT t2.a,t2.t,t2.i1 FROM t2 INNER JOIN (SELECT * from t1) s1 where t2.a+1=s1.a+1 and t2.b+1=s1.b+1;
# Clean UP
DROP DATABASE mcol641_joins_db;

View File

@ -0,0 +1,90 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS mcol641_sorting_db;
--enable_warnings
CREATE DATABASE mcol641_sorting_db;
USE mcol641_sorting_db;
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38), d4 DECIMAL(38),d5 DECIMAL(38),i1 INT) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED, d4 DECIMAL(38),d5 DECIMAL(38),i1 INT) ENGINE=columnstore;
INSERT INTO cs1 VALUES
(1234,5678,-0.12345678901234567890123456789018,2,1,1),
(1234,-5678,0.1234567890123456789012345,2,1,1),
(12345678901234567890123,1234567890123456789012.9012345678,0.123456789012345678901234567890,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.1234567890123456783456789012345678,3,2,2),
(-123456789123456789,-5678,0.123456789012345673456789012345678,3,2,2),
(12345678901234567890901,1234567890123478901234.9012345678,0.1234567890123456789012345678908,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,-0.12345678901234567890123456789018,11111111111111111111111111111112,1,1);
INSERT INTO cs2 VALUES
(1234,5678,0.12345678901234567890123456789018,2,1,1),
(1234,5678,0.1234567890123456789012345,2,1,1),
(12345678901234567890123,1234567890123456789012.9012345678,0.123456789012345678901234567890,2,1,1),
(NULL,NULL,NULL,2,1,1),
(0,0,0,2,1,1),
(1234,5678,0.1234567890123456783456789012345678,3,2,2),
(123456789123456789,5678,0.123456789012345673456789012345678,3,2,2),
(12345678901234567890901,1234567890123478901234.9012345678,0.1234567890123456789012345678908,3,2,2),
(NULL,NULL,NULL,3,2,2),
(0,0,0,3,2,2),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111111,1,1),
(1234,5678,0.12345678901234567890123456789018,11111111111111111111111111111112,1,1);
# ORDER BY
SELECT 't1_q1',d1,d5 FROM cs1 ORDER BY d1,d5;
SELECT 't1_q2',d2,d5 FROM cs1 ORDER BY d2,d5;
SELECT 't1_q3',d3,d5 FROM cs1 ORDER BY d3,d5;
# LIMIT
SELECT 't2_q1',d1,d5 FROM cs1 ORDER BY d1,d5 LIMIT 1 OFFSET 2;
SELECT 't2_q2',d2,d5 FROM cs1 ORDER BY d2,d5 LIMIT 1 OFFSET 2;
SELECT 't2_q3',d3,d5 FROM cs1 ORDER BY d3,d5 LIMIT 1 OFFSET 2;
# DISTINCT
SELECT DISTINCT 't3_q1',d1,d5 FROM cs1 ORDER BY d1,d5;
SELECT DISTINCT 't3_q2',d2,d5 FROM cs1 ORDER BY d2,d5;
SELECT DISTINCT 't3_q3',d3,d5 FROM cs1 ORDER BY d3,d5;
# ORDER BY
SELECT 't4_q1',d1,d5 FROM cs1 ORDER BY d1,d5 ASC;
SELECT 't4_q2',d2,d5 FROM cs1 ORDER BY d2,d5 ASC;
SELECT 't4_q3',d3,d5 FROM cs1 ORDER BY d3,d5 ASC;
SELECT 't4_q1',d1,d5 FROM cs1 ORDER BY d1,d5 DESC;
SELECT 't4_q2',d2,d5 FROM cs1 ORDER BY d2,d5 DESC;
SELECT 't4_q3',d3,d5 FROM cs1 ORDER BY d3,d5 DESC;
# ORDER BY
SELECT 't5_q1',d1,d5 FROM cs2 ORDER BY d1,d5;
SELECT 't5_q2',d2,d5 FROM cs2 ORDER BY d2,d5;
SELECT 't5_q3',d3,d5 FROM cs2 ORDER BY d3,d5;
# LIMIT
SELECT 't6_q1',d1,d5 FROM cs2 ORDER BY d1,d5 LIMIT 1 OFFSET 2;
SELECT 't6_q2',d2,d5 FROM cs2 ORDER BY d2,d5 LIMIT 1 OFFSET 2;
SELECT 't6_q3',d3,d5 FROM cs2 ORDER BY d3,d5 LIMIT 1 OFFSET 2;
# DISTINCT
SELECT DISTINCT 't7_q1',d1,d5 FROM cs2 ORDER BY d1,d5;
SELECT DISTINCT 't7_q2',d2,d5 FROM cs2 ORDER BY d2,d5;
SELECT DISTINCT 't7_q3',d3,d5 FROM cs2 ORDER BY d3,d5;
# ORDER BY
SELECT 't8_q1',d1,d5 FROM cs2 ORDER BY d1,d5 ASC;
SELECT 't8_q2',d2,d5 FROM cs2 ORDER BY d2,d5 ASC;
SELECT 't8_q3',d3,d5 FROM cs2 ORDER BY d3,d5 ASC;
SELECT 't8_q1',d1,d5 FROM cs2 ORDER BY d1,d5 DESC;
SELECT 't8_q2',d2,d5 FROM cs2 ORDER BY d2,d5 DESC;
SELECT 't8_q3',d3,d5 FROM cs2 ORDER BY d3,d5 DESC;
# Clean UP
DROP DATABASE mcol641_sorting_db;

View File

@ -0,0 +1,35 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS mcol641_union_db;
--enable_warnings
CREATE DATABASE mcol641_union_db;
USE mcol641_union_db;
SET SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(38,10), d3 DECIMAL(38,38)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(38,10) UNSIGNED, d3 DECIMAL(38,38) UNSIGNED) ENGINE=columnstore;
INSERT INTO cs1 VALUES (125, 1.25, 0.125);
INSERT INTO cs1 VALUES (-125, -1.25, -0.125);
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998);
INSERT INTO cs1 values (99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999);
INSERT INTO cs1 values (-99999999999999999999999999999999999998, -9999999999999999999999999999.9999999998, -0.99999999999999999999999999999999999998);
INSERT INTO cs1 values (-99999999999999999999999999999999999999, -9999999999999999999999999999.9999999999, -0.99999999999999999999999999999999999999);
SELECT d1, d1, d2 FROM cs1 UNION SELECT d2, d3, d3 FROM cs1;
SELECT d2, d3, d3 FROM cs1 UNION SELECT d1, d1, d2 FROM cs1;
SELECT d1, d2, d3 FROM cs1 UNION SELECT d1, d2, d3 FROM cs1;
INSERT INTO cs2 VALUES (125, 1.25, 0.125);
INSERT INTO cs2 values (99999999999999999999999999999999999998, 9999999999999999999999999999.9999999998, 0.99999999999999999999999999999999999998);
INSERT INTO cs2 values (99999999999999999999999999999999999999, 9999999999999999999999999999.9999999999, 0.99999999999999999999999999999999999999);
SELECT d1, d1, d2 FROM cs2 UNION SELECT d2, d3, d3 FROM cs2;
SELECT d2, d3, d3 FROM cs2 UNION SELECT d1, d1, d2 FROM cs2;
SELECT d1, d2, d3 FROM cs2 UNION SELECT d1, d2, d3 FROM cs2;
# Clean UP
DROP DATABASE mcol641_union_db;

View File

@ -0,0 +1,357 @@
-- source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS mcol641_update_db;
--enable_warnings
CREATE DATABASE mcol641_update_db;
USE mcol641_update_db;
DROP PROCEDURE IF EXISTS signedinsertproc;
DROP PROCEDURE IF EXISTS signeddeleteproc;
DROP PROCEDURE IF EXISTS unsignedinsertproc;
DROP PROCEDURE IF EXISTS unsigneddeleteproc;
DELIMITER //;
CREATE PROCEDURE signedinsertproc ()
BEGIN
INSERT INTO cs1 VALUES (125, 125);
INSERT INTO cs1 VALUES (-125, -125);
INSERT INTO cs1 values (99999999999999999999999999999999999998, 9999999999999999998);
INSERT INTO cs1 values (99999999999999999999999999999999999999, 9999999999999999999);
INSERT INTO cs1 values (-99999999999999999999999999999999999998, -9999999999999999998);
INSERT INTO cs1 values (-99999999999999999999999999999999999999, -9999999999999999999);
INSERT INTO cs1 VALUES (0, 0);
INSERT INTO cs1 VALUES (NULL, NULL);
INSERT INTO cs2 VALUES (1.25, 1.25);
INSERT INTO cs2 VALUES (-1.25, -1.25);
INSERT INTO cs2 values (9999999999999999999999999999.9999999998, 999999999.9999999998);
INSERT INTO cs2 values (9999999999999999999999999999.9999999999, 999999999.9999999999);
INSERT INTO cs2 values (-9999999999999999999999999999.9999999998, -999999999.9999999998);
INSERT INTO cs2 values (-9999999999999999999999999999.9999999999, -999999999.9999999999);
INSERT INTO cs2 VALUES (1.1234567891, 1.1234567891);
INSERT INTO cs2 VALUES (1.9999999999, 1.9999999999);
INSERT INTO cs2 VALUES (-1.1234567891, -1.1234567891);
INSERT INTO cs2 VALUES (-1.9999999999, -1.9999999999);
INSERT INTO cs2 VALUES (1.0000000009, 1.0000000009);
INSERT INTO cs2 VALUES (-1.0000000009, -1.0000000009);
INSERT INTO cs2 VALUES (0, 0);
INSERT INTO cs2 VALUES (NULL, NULL);
INSERT INTO cs3 VALUES (0.125, 0.125);
INSERT INTO cs3 VALUES (-0.125, -0.125);
INSERT INTO cs3 values (0.99999999999999999999999999999999999998, 0.9999999999999999998);
INSERT INTO cs3 values (0.99999999999999999999999999999999999999, 0.9999999999999999999);
INSERT INTO cs3 values (-0.99999999999999999999999999999999999998, -0.9999999999999999998);
INSERT INTO cs3 values (-0.99999999999999999999999999999999999999, -0.9999999999999999999);
INSERT INTO cs3 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789);
INSERT INTO cs3 VALUES (0.19999999999999999999999999999999999999, 0.1999999999999999999);
INSERT INTO cs3 VALUES (-0.12345678901234567890123456789012345678, -0.1234567890123456789);
INSERT INTO cs3 VALUES (-0.19999999999999999999999999999999999999, -0.1999999999999999999);
INSERT INTO cs3 VALUES (0.00000000000000000000000000000000000009, 0.0000000000000000009);
INSERT INTO cs3 VALUES (-0.00000000000000000000000000000000000009, -0.0000000000000000009);
INSERT INTO cs3 VALUES (0, 0);
INSERT INTO cs3 VALUES (NULL, NULL);
END//
CREATE PROCEDURE unsignedinsertproc ()
BEGIN
INSERT INTO cs4 VALUES (125, 125);
INSERT INTO cs4 values (99999999999999999999999999999999999998, 9999999999999999998);
INSERT INTO cs4 values (99999999999999999999999999999999999999, 9999999999999999999);
INSERT INTO cs4 VALUES (0, 0);
INSERT INTO cs4 VALUES (NULL, NULL);
INSERT INTO cs5 VALUES (1.25, 1.25);
INSERT INTO cs5 values (9999999999999999999999999999.9999999998, 999999999.9999999998);
INSERT INTO cs5 values (9999999999999999999999999999.9999999999, 999999999.9999999999);
INSERT INTO cs5 VALUES (1.1234567891, 1.1234567891);
INSERT INTO cs5 VALUES (1.9999999999, 1.9999999999);
INSERT INTO cs5 VALUES (1.0000000009, 1.0000000009);
INSERT INTO cs5 VALUES (0, 0);
INSERT INTO cs5 VALUES (NULL, NULL);
INSERT INTO cs6 VALUES (0.125, 0.125);
INSERT INTO cs6 values (0.99999999999999999999999999999999999998, 0.9999999999999999998);
INSERT INTO cs6 values (0.99999999999999999999999999999999999999, 0.9999999999999999999);
INSERT INTO cs6 VALUES (0.12345678901234567890123456789012345678, 0.1234567890123456789);
INSERT INTO cs6 VALUES (0.19999999999999999999999999999999999999, 0.1999999999999999999);
INSERT INTO cs6 VALUES (0.00000000000000000000000000000000000009, 0.0000000000000000009);
INSERT INTO cs6 VALUES (0, 0);
INSERT INTO cs6 VALUES (NULL, NULL);
END//
CREATE PROCEDURE signeddeleteproc ()
BEGIN
DELETE FROM cs1;
DELETE FROM cs2;
DELETE FROM cs3;
END//
CREATE PROCEDURE unsigneddeleteproc ()
BEGIN
DELETE FROM cs4;
DELETE FROM cs5;
DELETE FROM cs6;
END//
DELIMITER ;//
DROP TABLE IF EXISTS cs1;
DROP TABLE IF EXISTS cs2;
DROP TABLE IF EXISTS cs3;
DROP TABLE IF EXISTS cs4;
DROP TABLE IF EXISTS cs5;
DROP TABLE IF EXISTS cs6;
CREATE TABLE cs1 (d1 DECIMAL(38), d2 DECIMAL(19)) ENGINE=columnstore;
CREATE TABLE cs2 (d1 DECIMAL(38,10), d2 DECIMAL(19,10)) ENGINE=columnstore;
CREATE TABLE cs3 (d1 DECIMAL(38,38), d2 DECIMAL(19,19)) ENGINE=columnstore;
CREATE TABLE cs4 (d1 DECIMAL(38) UNSIGNED, d2 DECIMAL(19) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs5 (d1 DECIMAL(38,10) UNSIGNED, d2 DECIMAL(19,10) UNSIGNED) ENGINE=columnstore;
CREATE TABLE cs6 (d1 DECIMAL(38,38) UNSIGNED, d2 DECIMAL(19,19) UNSIGNED) ENGINE=columnstore;
CALL signedinsertproc();
# Updates with constant values without a WHERE clause
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789;
SELECT "signedtest1", d1, d2 FROM cs1;
SELECT "signedtest1", d1, d2 FROM cs2;
SELECT "signedtest1", d1, d2 FROM cs3;
# Updates with WHERE clause
# Update a single row with a constant value in WHERE clause
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=0 WHERE d1=-99999999999999999999999999999999999998;
UPDATE cs1 SET d1=0, d2=123456789012345678 WHERE d2=9999999999999999999;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=0 WHERE d1=-9999999999999999999999999999.9999999998;
UPDATE cs2 SET d1=0, d2=123456789.012345678 WHERE d2=999999999.9999999999;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0 WHERE d1=-0.99999999999999999999999999999999999998;
UPDATE cs3 SET d1=0, d2=0.123456789012345678 WHERE d2=0.9999999999999999999;
SELECT "signedtest2", d1, d2 FROM cs1;
SELECT "signedtest2", d1, d2 FROM cs2;
SELECT "signedtest2", d1, d2 FROM cs3;
# Update multiple rows
# Updates with multiple constant values in WHERE clause
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 in (-99999999999999999999999999999999999998, 99999999999999999999999999999999999999);
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 in (-9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999999);
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 in (-0.99999999999999999999999999999999999998, 0.99999999999999999999999999999999999999);
SELECT "signedtest3", d1, d2 FROM cs1;
SELECT "signedtest3", d1, d2 FROM cs2;
SELECT "signedtest3", d1, d2 FROM cs3;
# Updates with comparison operators in WHERE clause
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 < -99999999999999999999999999999999999998 OR d2 > 9999999999999999998;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 < -9999999999999999999999999999.9999999998 OR d2 > 999999999.9999999998;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 < -0.99999999999999999999999999999999999998 OR d2 > 0.9999999999999999998;
SELECT "signedtest4a", d1, d2 FROM cs1;
SELECT "signedtest4a", d1, d2 FROM cs2;
SELECT "signedtest4a", d1, d2 FROM cs3;
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 <= -99999999999999999999999999999999999998 OR d2 >= 9999999999999999998;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 <= -9999999999999999999999999999.9999999998 OR d2 >= 999999999.9999999998;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 <= -0.99999999999999999999999999999999999998 OR d2 >= 0.9999999999999999998;
SELECT "signedtest4b", d1, d2 FROM cs1;
SELECT "signedtest4b", d1, d2 FROM cs2;
SELECT "signedtest4b", d1, d2 FROM cs3;
# Update with NULL in the WHERE clause
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 is NULL;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 is NULL;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 is NULL;
SELECT "signedtest5", d1, d2 FROM cs1;
SELECT "signedtest5", d1, d2 FROM cs2;
SELECT "signedtest5", d1, d2 FROM cs3;
# Update with != operator
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 != 125;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 != 1.25;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 != 0.125;
SELECT "signedtest6", d1, d2 FROM cs1;
SELECT "signedtest6", d1, d2 FROM cs2;
SELECT "signedtest6", d1, d2 FROM cs3;
# Update with non-constant value in the WHERE clause
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d2=d1 WHERE d1 = d2;
UPDATE cs2 SET d2=d1 WHERE d1 = d2;
UPDATE cs3 SET d2=d1 WHERE d1 = d2;
SELECT "signedtest7", d1, d2 FROM cs1;
SELECT "signedtest7", d1, d2 FROM cs2;
SELECT "signedtest7", d1, d2 FROM cs3;
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=d2 WHERE d1 != d2;
UPDATE cs2 SET d1=d2 WHERE d1 != d2;
UPDATE cs3 SET d1=d2 WHERE d1 != d2;
SELECT "signedtest8", d1, d2 FROM cs1;
SELECT "signedtest8", d1, d2 FROM cs2;
SELECT "signedtest8", d1, d2 FROM cs3;
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 < d2;
UPDATE cs2 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 < d2;
UPDATE cs3 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 < d2;
SELECT "signedtest9", d1, d2 FROM cs1;
SELECT "signedtest9", d1, d2 FROM cs2;
SELECT "signedtest9", d1, d2 FROM cs3;
CALL signeddeleteproc();
CALL signedinsertproc();
UPDATE cs1 SET d1=d2 WHERE d1 > d2;
UPDATE cs2 SET d1=d2 WHERE d1 > d2;
UPDATE cs3 SET d1=d2 WHERE d1 > d2;
SELECT "signedtest10", d1, d2 FROM cs1;
SELECT "signedtest10", d1, d2 FROM cs2;
SELECT "signedtest10", d1, d2 FROM cs3;
# Updates with functions and expressions in the WHERE clause
# Repeat above tests for the unsigned case
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
# Updates with constant values without a WHERE clause
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789;
SELECT "unsignedtest1", d1, d2 FROM cs4;
SELECT "unsignedtest1", d1, d2 FROM cs5;
SELECT "unsignedtest1", d1, d2 FROM cs6;
#
# Updates with WHERE clause
#
# Update a single row with a constant value in WHERE clause
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=0 WHERE d1=99999999999999999999999999999999999998;
UPDATE cs4 SET d1=0, d2=123456789012345678 WHERE d2=9999999999999999999;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=0 WHERE d1=9999999999999999999999999999.9999999998;
UPDATE cs5 SET d1=0, d2=123456789.012345678 WHERE d2=999999999.9999999999;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0 WHERE d1=0.99999999999999999999999999999999999998;
UPDATE cs6 SET d1=0, d2=0.123456789012345678 WHERE d2=0.9999999999999999999;
SELECT "unsignedtest2", d1, d2 FROM cs4;
SELECT "unsignedtest2", d1, d2 FROM cs5;
SELECT "unsignedtest2", d1, d2 FROM cs6;
# Update multiple rows
# Updates with multiple constant values in WHERE clause
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 in (99999999999999999999999999999999999998, 99999999999999999999999999999999999999);
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 in (9999999999999999999999999999.9999999998, 9999999999999999999999999999.9999999999);
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 in (0.99999999999999999999999999999999999998, 0.99999999999999999999999999999999999999);
SELECT "unsignedtest3", d1, d2 FROM cs4;
SELECT "unsignedtest3", d1, d2 FROM cs5;
SELECT "unsignedtest3", d1, d2 FROM cs6;
#
# Updates with comparison operators in WHERE clause
#
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 > 99999999999999999999999999999999999998 OR d2 > 9999999999999999998;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 > 9999999999999999999999999999.9999999998 OR d2 > 999999999.9999999998;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 > 0.99999999999999999999999999999999999998 OR d2 > 0.9999999999999999998;
SELECT "unsignedtest4a", d1, d2 FROM cs4;
SELECT "unsignedtest4a", d1, d2 FROM cs5;
SELECT "unsignedtest4a", d1, d2 FROM cs6;
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 >= 99999999999999999999999999999999999998 OR d2 >= 9999999999999999998;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 >= 9999999999999999999999999999.9999999998 OR d2 >= 999999999.9999999998;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 >= 0.99999999999999999999999999999999999998 OR d2 >= 0.9999999999999999998;
SELECT "unsignedtest4b", d1, d2 FROM cs4;
SELECT "unsignedtest4b", d1, d2 FROM cs5;
SELECT "unsignedtest4b", d1, d2 FROM cs6;
# Update with NULL in the WHERE clause
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 is NULL;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 is NULL;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 is NULL;
SELECT "unsignedtest5", d1, d2 FROM cs4;
SELECT "unsignedtest5", d1, d2 FROM cs5;
SELECT "unsignedtest5", d1, d2 FROM cs6;
# Update with != operator
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 != 125;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 != 1.25;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 != 0.125;
SELECT "unsignedtest6", d1, d2 FROM cs4;
SELECT "unsignedtest6", d1, d2 FROM cs5;
SELECT "unsignedtest6", d1, d2 FROM cs6;
# Update with non-constant value in the WHERE clause
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d2=d1 WHERE d1 = d2;
UPDATE cs5 SET d2=d1 WHERE d1 = d2;
UPDATE cs6 SET d2=d1 WHERE d1 = d2;
SELECT "unsignedtest7", d1, d2 FROM cs4;
SELECT "unsignedtest7", d1, d2 FROM cs5;
SELECT "unsignedtest7", d1, d2 FROM cs6;
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=d2 WHERE d1 != d2;
UPDATE cs5 SET d1=d2 WHERE d1 != d2;
UPDATE cs6 SET d1=d2 WHERE d1 != d2;
SELECT "unsignedtest8", d1, d2 FROM cs4;
SELECT "unsignedtest8", d1, d2 FROM cs5;
SELECT "unsignedtest8", d1, d2 FROM cs6;
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=12345678901234567890123456789012345678, d2=1234567890123456789 WHERE d1 < d2;
UPDATE cs5 SET d1=1234567890123456789012345678.9012345678, d2=123456789.0123456789 WHERE d1 < d2;
UPDATE cs6 SET d1=0.12345678901234567890123456789012345678, d2=0.1234567890123456789 WHERE d1 < d2;
SELECT "unsignedtest9", d1, d2 FROM cs4;
SELECT "unsignedtest9", d1, d2 FROM cs5;
SELECT "unsignedtest9", d1, d2 FROM cs6;
CALL unsigneddeleteproc();
CALL unsignedinsertproc();
UPDATE cs4 SET d1=d2 WHERE d1 > d2;
UPDATE cs5 SET d1=d2 WHERE d1 > d2;
UPDATE cs6 SET d1=d2 WHERE d1 > d2;
SELECT "unsignedtest10a", d1, d2 FROM cs4;
SELECT "unsignedtest10a", d1, d2 FROM cs5;
SELECT "unsignedtest10a", d1, d2 FROM cs6;
# Following test fails due to MCOL-3892
# Uncomment the test when the issue is fixed.
#CALL unsigneddeleteproc();
#CALL unsignedinsertproc();
#UPDATE cs4 SET d2=d1 WHERE d1 < d2;
#UPDATE cs5 SET d2=d1 WHERE d1 < d2;
#UPDATE cs6 SET d2=d1 WHERE d1 < d2;
#SELECT "unsignedtest10b", d1, d2 FROM cs4;
#SELECT "unsignedtest10b", d1, d2 FROM cs5;
#SELECT "unsignedtest10b", d1, d2 FROM cs6;
# Updates with functions and expressions in the WHERE clause
# Clean UP
DROP PROCEDURE IF EXISTS signedinsertproc;
DROP PROCEDURE IF EXISTS signeddeleteproc;
DROP PROCEDURE IF EXISTS unsignedinsertproc;
DROP PROCEDURE IF EXISTS unsigneddeleteproc;
DROP DATABASE mcol641_update_db;