[Wasm] SIMDScan giving weird results
SIMDScan
gave me incorrect results under the following configuration and dataset. I tried to find a minimal example but wasn't able to.
X.csv
id,val_bool,val_int1,val_int2,val_int4,val_int8,val_float,val_double,val_decimal,val_char,val_varchar,val_date,val_datetime
0,TRUE,-116,3280,-1095681136,4362123993650086377,0.6766994874229113,0.8921795677048454,-826.11,"BcbfnoGMbJmTPSI","oCLrZ3aWZkSBv",2007-10-27,2073-11-29 12:00:00
1,TRUE,-81,17029,-1732089961,5665516783201133478,0.7297317866938179,0.5362280914547007,946.22,"yfJs1ON43xKmTec","Xsf2o3g",2021-09-26,2083-07-10 12:00:00
2,TRUE,61,13798,635807147,2489909929858564723,0.534139877029708,0.24481092515142622,-75.48,"r7OSJoRu1XXdo0c","zren68K4Tu",2037-12-11,2057-06-29 12:00:00
3,TRUE,7,-14467,363294073,1540910505883318389,0.36199644371361095,0.997325777989161,-723.33,"FfWd3hjOkYRBMey","MDHqJ38aRUhR",2072-03-12,2016-04-19 12:00:00
4,FALSE,94,-12038,-198755165,4832349680625412447,0.5076816746043252,0.10641082279770497,250.6,"1OGMmjxWkI9X7H6","",2051-07-08,2036-07-01 12:00:00
5,TRUE,57,7538,-1119043785,-7770560900663392394,0.7319075948446278,0.8160232534200885,955.96,"IXiiQE8JkqH3MB9","7IWUSm",2067-01-12,2020-10-27 12:00:00
6,FALSE,-67,-275,-1182415921,-9090724384743609674,0.7078409465484541,0.0588737668763234,-865.19,"c3veGprQFnIiU74","pYEZAmggQBwBAD3",2069-03-24,1983-05-25 12:00:00
7,FALSE,45,-18446,-1079512828,669353972245563375,0.14018229709477448,0.18348803578723327,-74.74,"37eCZ32JgdPI1af","kAFEn3z",2092-10-27,1992-05-29 12:00:00
8,TRUE,71,1992,1224621261,-245868968891802934,0.18989786726763713,0.21770089841417495,-883.02,"VIdVuddLEG62Hkd","2l",2087-04-18,2024-12-14 12:00:00
9,TRUE,-108,-22023,97851029,-4413094002320414507,0.6697259747698292,0.3141838627955761,-468.77,"iQPtDu7W7eaDNKg","In",2038-11-07,2003-04-01 12:00:00
10,FALSE,-48,24665,874197315,-6746138186418950715,0.11542867041910221,0.10703597770941764,106.45,"rsMnTvnRO2qGFq5","f",2056-04-29,2082-11-16 12:00:00
11,TRUE,-127,10951,1164448205,8850710036693507252,0.16158197627388615,0.44183551186085057,411.33,"Jahe84S5jIc1xLJ","Bict",2018-09-12,2062-10-30 12:00:00
12,TRUE,53,20496,1071498201,7929905140281039769,0.864605696219964,0.9762060329309629,621.54,"4AblV7vY7AZQ3VZ","rkYSgy3",2034-01-23,2095-01-01 12:00:00
13,FALSE,28,-2937,-1190034281,-5660756211709513894,0.3282619511977065,0.8643529420302863,933.77,"rwPGzR1Iv8bh4ql","cgMBwUYu",1985-09-27,1995-11-14 12:00:00
14,TRUE,95,-32547,-1301224198,7761852277275196180,0.6231554099464092,0.6633874762655443,-750.74,"5tGtQAuzSsJimAQ","RV5lNKtzJ1at",2009-01-18,2059-02-08 12:00:00
15,FALSE,98,25186,754313246,4632680939350540257,0.672795670557167,0.22464066599728827,-601.73,"bcpEN2XeDA4OKmT","FzpjPSa5W3X4",2027-11-12,2040-06-29 12:00:00
16,TRUE,-1,-16862,-186995009,7220533892671344786,0.6126523227617628,0.7192739612759671,9.56,"16JC5kV3ECqWp1O","XXHFOprC",2008-11-20,2006-12-25 12:00:00
17,FALSE,-87,-14632,-1499670890,3577742604282796499,0.7064191416945522,0.06422885071387807,-184.8,"IDAdn1Ay5XL8Sb2","Ea8wtWy2591A",2092-03-11,2036-06-13 12:00:00
18,FALSE,95,30886,-2022822982,6281220792994782994,0.9195416206689759,0.9807219775189232,68.25,"6zLKQbfPBi3Dldq","unDuvW4yrW81",2027-05-18,2083-08-19 12:00:00
19,FALSE,-119,-25942,-644415421,2799379298741431123,0.7542332040595262,0.9496117327159889,-601.27,"bNjpiEQhK8nDSqX","kMM9VThX0k9",2012-05-01,2048-10-04 12:00:00
schema.sql
CREATE TABLE X (
id INT(2) NOT NULL,
val_bool BOOL NOT NULL,
val_int1 INT(1) NOT NULL,
val_int2 INT(2) NOT NULL,
val_int4 INT(4) NOT NULL,
val_int8 INT(8) NOT NULL,
val_float FLOAT NOT NULL,
val_double DOUBLE NOT NULL,
val_decimal DECIMAL(3, 2) NOT NULL,
val_char CHAR(15) NOT NULL,
val_varchar VARCHAR(15) NOT NULL,
val_date DATE NOT NULL,
val_datetime DATETIME NOT NULL
);
IMPORT INTO X DSV "X.csv" HAS HEADER SKIP HEADER;
q.sql
SELECT val_int4 FROM X;
shell
build/debug/bin/shell schema.sql q.sql --backend WasmV8 --physplan
Result
wasm::Print with 0 tuples result set {[ X.val_int4 :INT(4) ]}(cumulative cost 3)
` wasm::Projection {[ X.val_int4 :INT(4) ]} (cumulative cost 2)
` wasm::SIMDScan(X) {[ X.val_int4 :INT(4) ]} (cumulative cost 1)
-1095681136
1224621261
-186995009
-2022822982
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
24 rows
Expected:
wasm::Print with 0 tuples result set {[ X.val_int4 :INT(4) ]}(cumulative cost 3)
` wasm::Projection {[ X.val_int4 :INT(4) ]} (cumulative cost 2)
` wasm::SIMDScan(X) {[ X.val_int4 :INT(4) ]} (cumulative cost 1)
-1095681136
-1732089961
635807147
363294073
-198755165
-1119043785
-1182415921
-1079512828
1224621261
97851029
874197315
1164448205
1071498201
-1190034281
-1301224198
754313246
-186995009
-1499670890
-2022822982
-644415421
20 rows