[MCOL-187] % and MOD operators causes internal errors Created: 2016-06-24  Updated: 2023-10-25  Resolved: 2023-10-25

Status: Closed
Project: MariaDB ColumnStore
Component/s: Columnstore Select Handler
Affects Version/s: None
Fix Version/s: Icebox

Type: Bug Priority: Major
Reporter: Justin Swanhart (Inactive) Assignee: Leonid Fedorov
Resolution: Won't Fix Votes: 0
Labels: None

Epic Link: ColumnStore Compatibility Improvements

 Description   

create table fact (
seq bigint,
i1 tinyint,
i2 smallint,
– i3 mediumint,
i4 int,
i8 bigint,
i1u tinyint unsigned,
i2u smallint unsigned,
– i3u mediumint unsigned,
i4u int unsigned,
i8u bigint unsigned,
– d1 decimal(65),
– d2 decimal(65,1),
– d3 decimal(65,30),
d5 decimal(15,5),
f1 float,
f2 float(2,1),
f23 float(23,4),
f24 float(24,10),
f53 float(53,20),
p1 double,
p2 double(2,1),
p23 double(23,4),
p24 double(24,10),
p53 double(53,20),
r1 real,
– r23 real(23,4),
– r24 real(24,10),
– r53 real(53,20),
– dp1 double precision,
– b0 bit(0),
– b1 bit(1),
– b64 bit(64),
d date,
dt datetime,
– ts timestamp,
– t time,
– y2 year(2),
– y4 year(4),
– c0 char(0),
c1 char(1),
c2 char(255),
– vc0 varchar(0),
vc1 varchar(1),
vc2 varchar(255)
– vb0 varbinary(0),
– vb1 varbinary(1),
– vb2 varbinary(255),
– bi0 binary(0),
– bi1 binary(1),
– bi2 binary(255)
– bl0 blob(0),
– bl1 blob(1),
– bl2 blob(255),
– tx0 text(0),
– tx1 text(1),
– tx2 text(255),
– e1 enum('a'),
– e2 enum(' ', 'a'),
– e3 enum(' ', 'a', 'abc'),
– s1 set('a'),
– s2 set(' ', 'a'),
– s3 set(' ', 'a', 'abc')
) ENGINE=COLUMNSTORE;

INSERT INTO fact VALUES (1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
INSERT INTO fact VALUES (2,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126);
INSERT INTO fact VALUES (3,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126);
INSERT INTO fact VALUES (4,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127);
INSERT INTO fact VALUES (5,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128);
INSERT INTO fact VALUES (6,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253);
INSERT INTO fact VALUES (7,'255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255','255');
INSERT INTO fact VALUES (8,'-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128','-128');
INSERT INTO fact VALUES (9,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0);
INSERT INTO fact VALUES (10,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0);
INSERT INTO fact VALUES (11,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555,-5555.5555);
INSERT INTO fact VALUES (12,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555,-5555.55555);
INSERT INTO fact VALUES (13,'-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555','-5555.5555');
INSERT INTO fact VALUES (14,'-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555','-5555.55555');
INSERT INTO fact VALUES (15,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555,55555.555);
INSERT INTO fact VALUES (16,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295);
INSERT INTO fact VALUES (17,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295);
INSERT INTO fact VALUES (18,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647);
INSERT INTO fact VALUES (19,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647,-2147483647);
INSERT INTO fact VALUES (20,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296,4294967295.4294967296);
INSERT INTO fact VALUES (21,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296,-4294967295.4294967296);
INSERT INTO fact VALUES (22,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600,18446744073709551600);
INSERT INTO fact VALUES (23,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600,-18446744073709551600);
INSERT INTO fact VALUES (24,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800,9223372036854775800);
INSERT INTO fact VALUES (25,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800,-9223372036854775800);
INSERT INTO fact VALUES (26,'0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f','0xdeadb33f');
INSERT INTO fact VALUES (27,'swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany','swany');
INSERT INTO fact VALUES (28,'??????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','????????????????????????','??????????????????????????');
INSERT INTO fact VALUES (29,'%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%','%');
INSERT INTO fact VALUES (30,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890,12345678.1234567890);
INSERT INTO fact VALUES (31,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890,-12344567.1234567890);
INSERT INTO fact VALUES (32,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001,0.0000000001);
INSERT INTO fact VALUES (33,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099,0.0000000099);
INSERT INTO fact VALUES (34,'','','','','','','','','','','','','','','','','','','','','','','','','','');
INSERT INTO fact VALUES (35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1);
INSERT INTO fact VALUES (36,'NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL','NOT NULL');
INSERT INTO fact VALUES (37,'1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30','1978_04_30');
INSERT INTO fact VALUES (38,'1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30','1978-04-30');
INSERT INTO fact VALUES (39,'1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00','1978-04-30 2:22:00');
INSERT INTO fact VALUES (40,'2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00','2:22:00');
INSERT INTO fact VALUES (41,'1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345','1978-04-30 2:22:00.12345');

select -18446744073709551600 % i4 from fact;

1815 - Internal error: InetStreamSocket::readToMagic: Remote is closed

select 9223372036854775800 % i4 from fact;

1815 - Internal error: IDB-2004: Cannot connect to ExeMgr.



 Comments   
Comment by Justin Swanhart (Inactive) [ 2016-06-24 ]

select -18446744073709551600 MOD i1 from fact;

1815 - Internal error: IDB-2045: At least one PrimProc closed the connection unexpectedly.

Comment by David Thompson (Inactive) [ 2016-10-07 ]

This issue only occurs for very large double values, taking off a digit and the query works. This smells like the calculation is overflowing the internal 64 bit number format. The knowledge base already documents the limitations here:
https://mariadb.com/kb/en/mariadb/columnstore-decimal-math-and-scale/

Comment by David Hall (Inactive) [ 2019-07-18 ]

Tested on 1.2.4. Still crashes.

While this calculation blows the size limitations, it should error, not crash.

Generated at Thu Feb 08 02:19:09 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.