Skip to content

Commit

Permalink
test(mtr): Add select_precision.test and select_distinct.test(#497)
Browse files Browse the repository at this point in the history
  • Loading branch information
davidshiz authored and mergify[bot] committed Oct 26, 2022
1 parent 35e7800 commit 6f2eb40
Show file tree
Hide file tree
Showing 4 changed files with 189 additions and 0 deletions.
59 changes: 59 additions & 0 deletions mysql-test/suite/tianmu/r/select_distinct.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#
# SELECT DISTINCT
#
DROP DATABASE IF EXISTS select_distinct_test;
CREATE DATABASE select_distinct_test;
USE select_distinct_test;
CREATE TABLE t1(col1 INT, col2 CHAR(5));
INSERT INTO t1 VALUES(NULL,''),(1,'a'),(1,'b'),(1,'c'),(2,'dd'),(3,'eee');
SELECT COUNT(DISTINCT col1) FROM t1;
COUNT(DISTINCT col1)
3
SELECT COUNT(DISTINCT col2) FROM t1;
COUNT(DISTINCT col2)
6
SELECT DISTINCT col1 FROM t1;
col1
NULL
1
2
3
SELECT DISTINCT col1 FROM t1 ORDER BY col1 DESC;
col1
3
2
1
NULL
SELECT DISTINCT col2 FROM t1;
col2

a
b
c
dd
eee
CREATE TABLE t2(col1 INT);
INSERT INTO t2 SELECT DISTINCT col1 FROM t1;
SELECT * FROM t2;
col1
NULL
1
2
3
CREATE TABLE t3 (name varchar(255));
INSERT INTO t3 VALUES ('aa'),('ab'),('ac'),('ad'),('ae');
SELECT DISTINCT * FROM t3;
name
aa
ab
ac
ad
ae
SELECT DISTINCT name FROM t3 LIMIT 2;
name
aa
ab
SELECT DISTINCT 1 FROM t3 LIMIT 3;
1
1
DROP DATABASE select_distinct_test;
54 changes: 54 additions & 0 deletions mysql-test/suite/tianmu/r/select_precision.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#
# SELECT PRECISION
#
DROP DATABASE IF EXISTS select_precision_test;
CREATE DATABASE select_precision_test;
USE select_precision_test;
SELECT @@sql_mode;
@@sql_mode
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
CREATE TABLE t (col TINYINT);
INSERT INTO t SET col = 128;
ERROR 22003: Out of range value for column 'col' at row 1
SELECT col FROM t;
col
INSERT INTO t SET col = 1 / 0;
ERROR 22012: Division by 0
SELECT col FROM t;
col
SET sql_mode='';
INSERT INTO t SET col = 128;
SELECT col FROM t;
col
127
INSERT INTO t SET col = 1 / 0;
SELECT col FROM t;
col
127
NULL
CREATE TABLE t1 (col FLOAT);
INSERT INTO t1 VALUES (NULL),(2.13),(-2.13),(21.5e0),(-21.5e0),(35.498),(986.512),(-376012.9751);
SELECT col, ROUND(col), ROUND(col,1), ROUND(col,-1), ROUND(col,-2), ROUND(col,3) FROM t1;
col ROUND(col) ROUND(col,1) ROUND(col,-1) ROUND(col,-2) ROUND(col,3)
NULL NULL NULL NULL NULL NULL
2.13 2 2.1 0 0 2.130
-2.13 -2 -2.1 0 0 -2.130
21.5 22 21.5 20 0 21.500
-21.5 -22 -21.5 -20 0 -21.500
35.498 35 35.5 40 0 35.498
986.512 987 986.5 990 1000 986.512
-376013 -376013 -376013.0 -376010 -376000 -376012.969
SELECT (.1 + .2) = .3;
(.1 + .2) = .3
1
SELECT (.1e0 + .2e0) = .3e0;
(.1e0 + .2e0) = .3e0
0
SELECT .01 * .01;
.01 * .01
0.0001
SELECT .1 / .1;
.1 / .1
1.00000
SET sql_mode=default;
DROP DATABASE select_precision_test;
33 changes: 33 additions & 0 deletions mysql-test/suite/tianmu/t/select_distinct.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
--source include/have_tianmu.inc

--echo #
--echo # SELECT DISTINCT
--echo #

--disable_warnings
DROP DATABASE IF EXISTS select_distinct_test;
--enable_warnings

CREATE DATABASE select_distinct_test;
USE select_distinct_test;

CREATE TABLE t1(col1 INT, col2 CHAR(5));
INSERT INTO t1 VALUES(NULL,''),(1,'a'),(1,'b'),(1,'c'),(2,'dd'),(3,'eee');
SELECT COUNT(DISTINCT col1) FROM t1;
SELECT COUNT(DISTINCT col2) FROM t1;
SELECT DISTINCT col1 FROM t1;
SELECT DISTINCT col1 FROM t1 ORDER BY col1 DESC;
SELECT DISTINCT col2 FROM t1;

CREATE TABLE t2(col1 INT);
INSERT INTO t2 SELECT DISTINCT col1 FROM t1;
SELECT * FROM t2;

CREATE TABLE t3 (name varchar(255));
INSERT INTO t3 VALUES ('aa'),('ab'),('ac'),('ad'),('ae');
SELECT DISTINCT * FROM t3;
SELECT DISTINCT name FROM t3 LIMIT 2;
SELECT DISTINCT 1 FROM t3 LIMIT 3;

# Clean UP
DROP DATABASE select_distinct_test;
43 changes: 43 additions & 0 deletions mysql-test/suite/tianmu/t/select_precision.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
--source include/have_tianmu.inc

--echo #
--echo # SELECT PRECISION
--echo #

--disable_warnings
DROP DATABASE IF EXISTS select_precision_test;
--enable_warnings

CREATE DATABASE select_precision_test;
USE select_precision_test;

SELECT @@sql_mode;
CREATE TABLE t (col TINYINT);
--error ER_WARN_DATA_OUT_OF_RANGE
INSERT INTO t SET col = 128;
SELECT col FROM t;
--error ER_DIVISION_BY_ZERO
INSERT INTO t SET col = 1 / 0;
SELECT col FROM t;

--disable_warnings
SET sql_mode='';
INSERT INTO t SET col = 128;
SELECT col FROM t;
INSERT INTO t SET col = 1 / 0;
SELECT col FROM t;
--enable_warnings

CREATE TABLE t1 (col FLOAT);
INSERT INTO t1 VALUES (NULL),(2.13),(-2.13),(21.5e0),(-21.5e0),(35.498),(986.512),(-376012.9751);
SELECT col, ROUND(col), ROUND(col,1), ROUND(col,-1), ROUND(col,-2), ROUND(col,3) FROM t1;

SELECT (.1 + .2) = .3;
SELECT (.1e0 + .2e0) = .3e0;
SELECT .01 * .01;
SELECT .1 / .1;

SET sql_mode=default;

# Clean UP
DROP DATABASE select_precision_test;

0 comments on commit 6f2eb40

Please sign in to comment.