You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +03:00
MCOL-4809 This patch adds support for float data types filtering and scanning vectorization
This commit is contained in:
committed by
Roman Nozdrin
parent
b1beb631c1
commit
f7417c0b10
176
mysql-test/columnstore/basic/r/double_float.result
Normal file
176
mysql-test/columnstore/basic/r/double_float.result
Normal file
@ -0,0 +1,176 @@
|
||||
DROP DATABASE IF EXISTS `double_float`;
|
||||
CREATE DATABASE `double_float`;
|
||||
USE `double_float`;
|
||||
SET default_storage_engine=Columnstore;
|
||||
SELECT @@default_storage_engine;
|
||||
@@default_storage_engine
|
||||
Columnstore
|
||||
set autocommit=0;
|
||||
CREATE TABLE test1 (dkey int);
|
||||
INSERT INTO test1 VALUES (1), (2), (3);
|
||||
SELECT test1.dkey FROM test1 ORDER BY test1.dkey;
|
||||
dkey
|
||||
1
|
||||
2
|
||||
3
|
||||
CREATE TABLE qatabledouble (col DOUBLE) ;
|
||||
CREATE TABLE qatablefloat (col float) ;
|
||||
INSERT INTO qatabledouble VALUES (-2.225073858507201E-307);
|
||||
INSERT INTO qatabledouble VALUES (-1.807302187774382E-127);
|
||||
INSERT INTO qatabledouble VALUES (0);
|
||||
INSERT INTO qatabledouble VALUES (1.993777023789432E+21);
|
||||
INSERT INTO qatabledouble VALUES (1.797693134862315E+38);
|
||||
INSERT INTO qatabledouble VALUES (-19937770237894323221);
|
||||
INSERT INTO qatabledouble VALUES (17976931348623158);
|
||||
SELECT * FROM qatabledouble;
|
||||
col
|
||||
-2.225073858507201e-307
|
||||
-1.807302187774382e-127
|
||||
0
|
||||
1.993777023789432e21
|
||||
1.797693134862315e38
|
||||
-1.9937770237894324e19
|
||||
1.7976931348623158e16
|
||||
INSERT INTO qatabledouble VALUES (null);
|
||||
INSERT INTO qatabledouble VALUES (null);
|
||||
INSERT INTO qatabledouble VALUES (null);
|
||||
SELECT * FROM qatabledouble;
|
||||
col
|
||||
-2.225073858507201e-307
|
||||
-1.807302187774382e-127
|
||||
0
|
||||
1.993777023789432e21
|
||||
1.797693134862315e38
|
||||
-1.9937770237894324e19
|
||||
1.7976931348623158e16
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
INSERT INTO qatablefloat VALUES (null);
|
||||
INSERT INTO qatablefloat VALUES (null);
|
||||
INSERT INTO qatablefloat VALUES (null);
|
||||
SELECT * FROM qatablefloat;
|
||||
col
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
DELETE FROM qatabledouble WHERE col IS NULL;
|
||||
SELECT * FROM qatabledouble;
|
||||
col
|
||||
-2.225073858507201e-307
|
||||
-1.807302187774382e-127
|
||||
0
|
||||
1.993777023789432e21
|
||||
1.797693134862315e38
|
||||
-1.9937770237894324e19
|
||||
1.7976931348623158e16
|
||||
delete FROM qatablefloat WHERE col IS NULL;
|
||||
SELECT * FROM qatablefloat;
|
||||
col
|
||||
CREATE TABLE qatabledouble_v2 (col1 DOUBLE, col2 DOUBLE, col3 DOUBLE) ;
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.50, -0.50, -0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.49, -0.49, -0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.49, 0.49, 0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.50, 0.50, 0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+8,+8,+8);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+0.50,+0.50,+0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+0.49,+0.49,+0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+0.0,+0.0,+0.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+.50,+.50,+.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+.49,+.49,+.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+.0,+.0,+.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-.0,-.0,-.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-.49,-.49,-.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-.50,-.50,-.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.0,-0.0,-0.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.49,-0.49,-0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.50,-0.50,-0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-8,-8,-8);
|
||||
INSERT INTO qatabledouble_v2 VALUES (8,8,8);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.50,0.50,0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.49,0.49,0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.0,0.0,0.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (.50,.50,.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (.49,.49,.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (.0,.0,.0);
|
||||
SELECT * FROM qatabledouble_v2;
|
||||
col1 col2 col3
|
||||
-0.5 -0.5 -0.5
|
||||
-0.49 -0.49 -0.49
|
||||
0.49 0.49 0.49
|
||||
0.5 0.5 0.5
|
||||
8 8 8
|
||||
0.5 0.5 0.5
|
||||
0.49 0.49 0.49
|
||||
0 0 0
|
||||
0.5 0.5 0.5
|
||||
0.49 0.49 0.49
|
||||
0 0 0
|
||||
0 0 0
|
||||
-0.49 -0.49 -0.49
|
||||
-0.5 -0.5 -0.5
|
||||
0 0 0
|
||||
-0.49 -0.49 -0.49
|
||||
-0.5 -0.5 -0.5
|
||||
-8 -8 -8
|
||||
8 8 8
|
||||
0.5 0.5 0.5
|
||||
0.49 0.49 0.49
|
||||
0 0 0
|
||||
0.5 0.5 0.5
|
||||
0.49 0.49 0.49
|
||||
0 0 0
|
||||
CREATE TABLE qatablefloat_v3 (col1 float, col2 float, col3 float) ;
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.50, -0.50, -0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.49, -0.49, -0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.49, 0.49, 0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.50, 0.50, 0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+8,+8,+8);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+0.50,+0.50,+0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+0.49,+0.49,+0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+0.0,+0.0,+0.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+.50,+.50,+.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+.49,+.49,+.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+.0,+.0,+.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-.0,-.0,-.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-.49,-.49,-.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-.50,-.50,-.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.0,-0.0,-0.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.49,-0.49,-0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.50,-0.50,-0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-8,-8,-8);
|
||||
INSERT INTO qatablefloat_v3 VALUES (8,8,8);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.50,0.50,0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.49,0.49,0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.0,0.0,0.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (.50,.50,.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (.49,.49,.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (.0,.0,.0);
|
||||
SELECT * FROM qatablefloat_v3;
|
||||
col1 col2 col3
|
||||
-0.5 -0.5 -0.5
|
||||
-0.49 -0.49 -0.49
|
||||
0.49 0.49 0.49
|
||||
0.5 0.5 0.5
|
||||
8 8 8
|
||||
0.5 0.5 0.5
|
||||
0.49 0.49 0.49
|
||||
0 0 0
|
||||
0.5 0.5 0.5
|
||||
0.49 0.49 0.49
|
||||
0 0 0
|
||||
0 0 0
|
||||
-0.49 -0.49 -0.49
|
||||
-0.5 -0.5 -0.5
|
||||
0 0 0
|
||||
-0.49 -0.49 -0.49
|
||||
-0.5 -0.5 -0.5
|
||||
-8 -8 -8
|
||||
8 8 8
|
||||
0.5 0.5 0.5
|
||||
0.49 0.49 0.49
|
||||
0 0 0
|
||||
0.5 0.5 0.5
|
||||
0.49 0.49 0.49
|
||||
0 0 0
|
||||
DROP DATABASE `double_float`;
|
100
mysql-test/columnstore/basic/t/double_float.test
Normal file
100
mysql-test/columnstore/basic/t/double_float.test
Normal file
@ -0,0 +1,100 @@
|
||||
#
|
||||
# Some double/float tests moved from regr.
|
||||
# DML, DQL w/without filters
|
||||
#
|
||||
|
||||
-- source ../include/have_columnstore.inc
|
||||
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS `double_float`;
|
||||
--enable_warnings
|
||||
CREATE DATABASE `double_float`;
|
||||
USE `double_float`;
|
||||
|
||||
SET default_storage_engine=Columnstore;
|
||||
SELECT @@default_storage_engine;
|
||||
|
||||
set autocommit=0;
|
||||
|
||||
CREATE TABLE test1 (dkey int);
|
||||
INSERT INTO test1 VALUES (1), (2), (3);
|
||||
SELECT test1.dkey FROM test1 ORDER BY test1.dkey;
|
||||
|
||||
CREATE TABLE qatabledouble (col DOUBLE) ;
|
||||
CREATE TABLE qatablefloat (col float) ;
|
||||
INSERT INTO qatabledouble VALUES (-2.225073858507201E-307); # Changed -308 to -307, -308 errors on qaftest7.
|
||||
INSERT INTO qatabledouble VALUES (-1.807302187774382E-127);
|
||||
INSERT INTO qatabledouble VALUES (0);
|
||||
INSERT INTO qatabledouble VALUES (1.993777023789432E+21);
|
||||
INSERT INTO qatabledouble VALUES (1.797693134862315E+38);
|
||||
INSERT INTO qatabledouble VALUES (-19937770237894323221);
|
||||
INSERT INTO qatabledouble VALUES (17976931348623158);
|
||||
SELECT * FROM qatabledouble;
|
||||
INSERT INTO qatabledouble VALUES (null);
|
||||
INSERT INTO qatabledouble VALUES (null);
|
||||
INSERT INTO qatabledouble VALUES (null);
|
||||
SELECT * FROM qatabledouble;
|
||||
INSERT INTO qatablefloat VALUES (null);
|
||||
INSERT INTO qatablefloat VALUES (null);
|
||||
INSERT INTO qatablefloat VALUES (null);
|
||||
SELECT * FROM qatablefloat;
|
||||
DELETE FROM qatabledouble WHERE col IS NULL;
|
||||
SELECT * FROM qatabledouble;
|
||||
delete FROM qatablefloat WHERE col IS NULL;
|
||||
SELECT * FROM qatablefloat;
|
||||
CREATE TABLE qatabledouble_v2 (col1 DOUBLE, col2 DOUBLE, col3 DOUBLE) ;
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.50, -0.50, -0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.49, -0.49, -0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.49, 0.49, 0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.50, 0.50, 0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+8,+8,+8);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+0.50,+0.50,+0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+0.49,+0.49,+0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+0.0,+0.0,+0.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+.50,+.50,+.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+.49,+.49,+.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (+.0,+.0,+.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-.0,-.0,-.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-.49,-.49,-.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-.50,-.50,-.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.0,-0.0,-0.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.49,-0.49,-0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-0.50,-0.50,-0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (-8,-8,-8);
|
||||
INSERT INTO qatabledouble_v2 VALUES (8,8,8);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.50,0.50,0.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.49,0.49,0.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (0.0,0.0,0.0);
|
||||
INSERT INTO qatabledouble_v2 VALUES (.50,.50,.50);
|
||||
INSERT INTO qatabledouble_v2 VALUES (.49,.49,.49);
|
||||
INSERT INTO qatabledouble_v2 VALUES (.0,.0,.0);
|
||||
SELECT * FROM qatabledouble_v2;
|
||||
CREATE TABLE qatablefloat_v3 (col1 float, col2 float, col3 float) ;
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.50, -0.50, -0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.49, -0.49, -0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.49, 0.49, 0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.50, 0.50, 0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+8,+8,+8);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+0.50,+0.50,+0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+0.49,+0.49,+0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+0.0,+0.0,+0.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+.50,+.50,+.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+.49,+.49,+.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (+.0,+.0,+.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-.0,-.0,-.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-.49,-.49,-.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-.50,-.50,-.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.0,-0.0,-0.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.49,-0.49,-0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-0.50,-0.50,-0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (-8,-8,-8);
|
||||
INSERT INTO qatablefloat_v3 VALUES (8,8,8);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.50,0.50,0.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.49,0.49,0.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (0.0,0.0,0.0);
|
||||
INSERT INTO qatablefloat_v3 VALUES (.50,.50,.50);
|
||||
INSERT INTO qatablefloat_v3 VALUES (.49,.49,.49);
|
||||
INSERT INTO qatablefloat_v3 VALUES (.0,.0,.0);
|
||||
SELECT * FROM qatablefloat_v3;
|
||||
|
||||
DROP DATABASE `double_float`;
|
Reference in New Issue
Block a user