提交 1c3d49b6 编写于 作者: S shangyanwen 提交者: mergify[bot]

test(mtr):add select_limit.test(#497)

上级 6f2eb40e
DROP DATABASE IF EXISTS db1;
CREATE DATABASE db1;
USE db1;
CREATE TABLE t1
(
t1_tinyint TINYINT DEFAULT 0,
t1_int INT DEFAULT NULL,
t1_bigint BIGINT,
t1_double DOUBLE,
t1_float FLOAT,
t1_blob BLOB,
t1_text TEXT,
t1_char CHAR(1),
t1_varchar VARCHAR(255) DEFAULT 'hello world!',
t1_datetime DATETIME
)ENGINE=tianmu;
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(203685477580676, -3.797693231E+108, -7.402866E+18, repeat('b',100), repeat('b',100), 'b', '2387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(303685477580676, -4.797693231, -8.402866, repeat('b',101), repeat('b',101), 'b', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('2',102), repeat('d',102), 'd', '4387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('2',102), repeat('d',102), 'd', '4387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('2',102), repeat('d',102), 'd', '4387-11-08 11:22:30.123');
INSERT INTO t1 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO t1 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO t1 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
SELECT * FROM t1 GROUP BY t1_tinyint;
ERROR 42000: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db1.t1.t1_int' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
SELECT COUNT(*) FROM t1 GROUP BY t1_tinyint;
COUNT(*)
11
3
SELECT COUNT(*) FROM t1 GROUP BY t1_int;
COUNT(*)
14
SELECT COUNT(*) FROM t1 GROUP BY t1_bigint;
COUNT(*)
1
1
3
9
SELECT COUNT(*) FROM t1 GROUP BY t1_double;
COUNT(*)
1
1
3
9
SELECT COUNT(*) FROM t1 GROUP BY t1_float;
COUNT(*)
1
1
3
9
SELECT COUNT(*) FROM t1 GROUP BY t1_blob;
COUNT(*)
1
1
3
3
6
SELECT COUNT(*) FROM t1 GROUP BY t1_text;
COUNT(*)
1
1
3
3
6
SELECT COUNT(*) FROM t1 GROUP BY t1_char;
COUNT(*)
2
3
3
6
SELECT COUNT(*) FROM t1 GROUP BY t1_varchar;
COUNT(*)
11
3
SELECT COUNT(*) FROM t1 GROUP BY t1_datetime;
COUNT(*)
1
3
3
7
SELECT SUM(t1_bigint) FROM t1 GROUP BY t1_tinyint;
SUM(t1_bigint)
4140540253387436
NULL
SELECT SUM(t1_double) FROM t1 GROUP BY t1_float;
SUM(t1_double)
-3.797693231e108
-4.797693231
493.1792390789999
NULL
SELECT SUM(DISTINCT t1_double) FROM t1 GROUP BY t1_float;
SUM(DISTINCT t1_double)
-3.797693231e108
-4.797693231
54.797693231
NULL
SELECT COUNT(*) FROM t1 GROUP BY t1_tinyint, t1_int, t1_bigint;
COUNT(*)
1
1
3
9
SELECT COUNT(*) FROM t1 GROUP BY t1_blob, t1_text, t1_char;
COUNT(*)
1
1
3
3
6
SELECT COUNT(*) FROM t1 GROUP BY t1_varchar, t1_datetime;
COUNT(*)
1
3
3
7
SELECT COUNT(*) FROM t1 WHERE t1_blob IS NOT NULL GROUP BY t1_tinyint, t1_int, t1_bigint;
COUNT(*)
1
1
9
SELECT COUNT(*) FROM t1 WHERE t1_int = 0 GROUP BY t1_blob, t1_text, t1_char;
COUNT(*)
SELECT COUNT(*) FROM t1 WHERE t1_char IN ('a', 'b') GROUP BY t1_varchar, t1_datetime;
COUNT(*)
1
1
SELECT COUNT(*) FROM t1 WHERE t1_varchar LIKE '%world%' GROUP BY t1_varchar, t1_datetime;
COUNT(*)
1
3
7
SELECT COUNT(*) FROM t1 WHERE t1_bigint != 0 AND t1_int = 0 OR t1_tinyint IS NULL GROUP BY t1_varchar, t1_datetime;
COUNT(*)
3
SELECT COUNT(*) FROM t1 WHERE t1_blob IS NOT NULL OR t1_tinyint IS NULL GROUP BY t1_varchar;
COUNT(*)
11
3
SELECT COUNT(*) FROM t1 GROUP BY t1_tinyint, t1_int, t1_bigint HAVING t1_char = 'b';
ERROR 42S22: Unknown column 't1_char' in 'having clause'
DROP DATABASE IF EXISTS db1;
\ No newline at end of file
#
# Test SELECT..LIMIT statement
# Author: syw
#
DROP DATABASE IF EXISTS mcs_db2;
CREATE DATABASE mcs_db2;
USE mcs_db2;
CREATE TABLE t1
(
t1_tinyint TINYINT DEFAULT 0,
t1_int INT DEFAULT NULL,
t1_bigint BIGINT,
t1_double DOUBLE,
t1_float FLOAT,
t1_blob BLOB,
t1_text TEXT,
t1_char CHAR(1),
t1_varchar VARCHAR(255) DEFAULT 'hello world!',
t1_datetime DATETIME
)ENGINE=tianmu;
INSERT INTO t1 VALUES();
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580679, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('a',25), 'a', '2020-10-10');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580680, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('b',25), 'b', '1234-10-10');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580677, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('b',25), 'c', '2020-10-11');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580678, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('b',25), 'd', '2020-10-10');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580676, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('b',25), 'e', '2020-10-13');
SELECT t1_int,t1_blob,t1_datetime FROM t1 LIMIT 2;
t1_int t1_blob t1_datetime
NULL NULL NULL
NULL aaaaaaaaaaaaaaaaaaaa 2020-10-10 00:00:00
SELECT * FROM t1 LIMIT 2;
t1_tinyint t1_int t1_bigint t1_double t1_float t1_blob t1_text t1_char t1_varchar t1_datetime
0 NULL 203685477580679 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa a hello world! 2020-10-10 00:00:00
0 NULL NULL NULL NULL NULL NULL NULL hello world! NULL
SELECT * FROM t1 LIMIT 10;
t1_tinyint t1_int t1_bigint t1_double t1_float t1_blob t1_text t1_char t1_varchar t1_datetime
0 NULL 203685477580676 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb e hello world! 2020-10-13 00:00:00
0 NULL 203685477580677 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb c hello world! 2020-10-11 00:00:00
0 NULL 203685477580678 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb d hello world! 2020-10-10 00:00:00
0 NULL 203685477580679 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa a hello world! 2020-10-10 00:00:00
0 NULL 203685477580680 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb b hello world! 1234-10-10 00:00:00
0 NULL NULL NULL NULL NULL NULL NULL hello world! NULL
SELECT * FROM t1 ORDER BY t1_datetime LIMIT 5;
t1_tinyint t1_int t1_bigint t1_double t1_float t1_blob t1_text t1_char t1_varchar t1_datetime
0 NULL 203685477580677 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb c hello world! 2020-10-11 00:00:00
0 NULL 203685477580678 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb d hello world! 2020-10-10 00:00:00
0 NULL 203685477580679 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa a hello world! 2020-10-10 00:00:00
0 NULL 203685477580680 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb b hello world! 1234-10-10 00:00:00
0 NULL NULL NULL NULL NULL NULL NULL hello world! NULL
INSERT INTO t1 SELECT * FROM t1;
SELECT MAX(t1_bigint) FROM t1 GROUP BY t1_text LIMIT 10;
MAX(t1_bigint)
203685477580679
203685477580680
NULL
SELECT * FROM t1 WHERE t1_text like '%a%' LIMIT 10;
t1_tinyint t1_int t1_bigint t1_double t1_float t1_blob t1_text t1_char t1_varchar t1_datetime
0 NULL 203685477580679 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa a hello world! 2020-10-10 00:00:00
0 NULL 203685477580679 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa a hello world! 2020-10-10 00:00:00
SELECT * FROM t1 ORDER BY t1_bigint ASC LIMIT 0,1;
t1_tinyint t1_int t1_bigint t1_double t1_float t1_blob t1_text t1_char t1_varchar t1_datetime
0 NULL NULL NULL NULL NULL NULL NULL hello world! NULL
SELECT * FROM t1 ORDER BY t1_bigint ASC LIMIT 1,1;
t1_tinyint t1_int t1_bigint t1_double t1_float t1_blob t1_text t1_char t1_varchar t1_datetime
0 NULL NULL NULL NULL NULL NULL NULL hello world! NULL
SELECT * FROM t1 ORDER BY t1_bigint DESC LIMIT 1,4;
t1_tinyint t1_int t1_bigint t1_double t1_float t1_blob t1_text t1_char t1_varchar t1_datetime
0 NULL 203685477580678 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb d hello world! 2020-10-10 00:00:00
0 NULL 203685477580679 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa a hello world! 2020-10-10 00:00:00
0 NULL 203685477580679 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa a hello world! 2020-10-10 00:00:00
0 NULL 203685477580680 -3.797693231e108 -7.40287e18 aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb b hello world! 1234-10-10 00:00:00
SELECT * FROM t1 LIMIT 0;
t1_tinyint t1_int t1_bigint t1_double t1_float t1_blob t1_text t1_char t1_varchar t1_datetime
SELECT * FROM t1 LIMIT @;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@' at line 1
SELECT * FROM t1 LIMIT -1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1
SELECT * FROM t1 LIMIT 'a';
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''a'' at line 1
DROP DATABASE mcs_db2;
\ No newline at end of file
此差异已折叠。
#
#create temporary...like...
#
drop table if exists t1;
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT, PRIMARY KEY (f1))engine=tianmu;
CREATE TEMPORARY TABLE t2 LIKE t1;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
ALTER TABLE t2 COMMENT = 'ABC';
UPDATE t2, t1 SET t2.f1 = 2, t1.f1 = 9;
ALTER TABLE t2 COMMENT = 'DEF';
SELECT * FROM t1;
f1
9
SELECT * FROM t2;
f1
2
DROP TABLE t1, t2;
#
#The temporary table name is consistent with the normal indication
#
CREATE TABLE t1 (c1 INT)engine=tianmu;
CREATE TEMPORARY TABLE `t1` (c1 INT)engine=tianmu;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TEMPORARY TABLE `t1` (
`c1` int(11) DEFAULT NULL
) ENGINE=TIANMU DEFAULT CHARSET=latin1
DROP TABLE t1;
DROP TABLE t1;
#
# Create an existing temporary table name
#
CREATE TABLE t1 (c1 INT)engine=tianmu;
CREATE TEMPORARY TABLE `t2` (c1 INT)engine=tianmu;
CREATE TEMPORARY TABLE `t2` (c1 INT)engine=tianmu;
ERROR 42S01: Table 't2' already exists
DROP TABLE t1,t2;
#
# bug:646, create temporary..select...from
#
#
# bug 646,CREATE TEMPORARY..(PRIMARY KEY)
#
#
# temporary The table name abnormal
#
CREATE TEMPORARY TABLE `#sql1` (c1 INT)engine=tianmu;
ALTER TABLE `#sql1` RENAME `@sql2`;
INSERT INTO `@sql2` VALUES (1);
SHOW CREATE TABLE `@sql2`;
Table Create Table
@sql2 CREATE TEMPORARY TABLE `@sql2` (
`c1` int(11) DEFAULT NULL
) ENGINE=TIANMU DEFAULT CHARSET=latin1
SELECT * FROM `@sql2`;
c1
1
DROP TABLE `@sql2`;
CREATE TEMPORARY TABLE `@0023sql2` (c1 INT)engine=tianmu;
ALTER TABLE `@0023sql2` RENAME `#sql2`;
INSERT INTO `#sql2` VALUES (2);
DROP TABLE `#sql2`;
CREATE TEMPORARY TABLE `tt+1` (c1 INT)engine=tianmu;
\ No newline at end of file
--source include/have_tianmu.inc
#
# Test basic select...group by
#
--disable_warnings
DROP DATABASE IF EXISTS db1;
--enable_warnings
CREATE DATABASE db1;
USE db1;
CREATE TABLE t1
(
t1_tinyint TINYINT DEFAULT 0,
t1_int INT DEFAULT NULL,
t1_bigint BIGINT,
t1_double DOUBLE,
t1_float FLOAT,
t1_blob BLOB,
t1_text TEXT,
t1_char CHAR(1),
t1_varchar VARCHAR(255) DEFAULT 'hello world!',
t1_datetime DATETIME
)ENGINE=tianmu;
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(203685477580676, -3.797693231E+108, -7.402866E+18, repeat('b',100), repeat('b',100), 'b', '2387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(303685477580676, -4.797693231, -8.402866, repeat('b',101), repeat('b',101), 'b', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('2',102), repeat('d',102), 'd', '4387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('2',102), repeat('d',102), 'd', '4387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('2',102), repeat('d',102), 'd', '4387-11-08 11:22:30.123');
INSERT INTO t1 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO t1 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO t1 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
--error 1055
SELECT * FROM t1 GROUP BY t1_tinyint;
SELECT COUNT(*) FROM t1 GROUP BY t1_tinyint;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_int;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_bigint;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_double;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_float;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_blob;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_text;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_char;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_varchar;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_datetime;
--sorted_result
SELECT SUM(t1_bigint) FROM t1 GROUP BY t1_tinyint;
--sorted_result
SELECT SUM(t1_double) FROM t1 GROUP BY t1_float;
--sorted_result
SELECT SUM(DISTINCT t1_double) FROM t1 GROUP BY t1_float;
#group by multiple columns
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_tinyint, t1_int, t1_bigint;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_blob, t1_text, t1_char;
--sorted_result
SELECT COUNT(*) FROM t1 GROUP BY t1_varchar, t1_datetime;
##along with where clause
--sorted_result
SELECT COUNT(*) FROM t1 WHERE t1_blob IS NOT NULL GROUP BY t1_tinyint, t1_int, t1_bigint;
--sorted_result
SELECT COUNT(*) FROM t1 WHERE t1_int = 0 GROUP BY t1_blob, t1_text, t1_char;
--sorted_result
SELECT COUNT(*) FROM t1 WHERE t1_char IN ('a', 'b') GROUP BY t1_varchar, t1_datetime;
--sorted_result
SELECT COUNT(*) FROM t1 WHERE t1_varchar LIKE '%world%' GROUP BY t1_varchar, t1_datetime;
--sorted_result
SELECT COUNT(*) FROM t1 WHERE t1_bigint != 0 AND t1_int = 0 OR t1_tinyint IS NULL GROUP BY t1_varchar, t1_datetime;
##BUG!
##ERROR 1815 (HY000): Internal error: VARBINARY/BLOB in filter or function is not supported.
#--error 1815
SELECT COUNT(*) FROM t1 WHERE t1_blob IS NOT NULL OR t1_tinyint IS NULL GROUP BY t1_varchar;
##along with having
##BUG!
##1054: Unknown column 't1_char' in 'having clause'
--error 1054
SELECT COUNT(*) FROM t1 GROUP BY t1_tinyint, t1_int, t1_bigint HAVING t1_char = 'b';
#Clean up
DROP DATABASE IF EXISTS db1;
\ No newline at end of file
--echo #
--echo # Test SELECT..LIMIT statement
--echo # Author: syw
--echo #
--source include/have_tianmu.inc
--disable_warnings
DROP DATABASE IF EXISTS mcs_db2;
--enable_warnings
CREATE DATABASE mcs_db2;
USE mcs_db2;
#Test with mixed datatypes
CREATE TABLE t1
(
t1_tinyint TINYINT DEFAULT 0,
t1_int INT DEFAULT NULL,
t1_bigint BIGINT,
t1_double DOUBLE,
t1_float FLOAT,
t1_blob BLOB,
t1_text TEXT,
t1_char CHAR(1),
t1_varchar VARCHAR(255) DEFAULT 'hello world!',
t1_datetime DATETIME
)ENGINE=tianmu;
INSERT INTO t1 VALUES();
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580679, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('a',25), 'a', '2020-10-10');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580680, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('b',25), 'b', '1234-10-10');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580677, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('b',25), 'c', '2020-10-11');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580678, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('b',25), 'd', '2020-10-10');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime) VALUES
(203685477580676, -3.797693231E+108, -7.402866E+18, repeat('a',20), repeat('b',25), 'e', '2020-10-13');
--sorted_result
SELECT t1_int,t1_blob,t1_datetime FROM t1 LIMIT 2;
--sorted_result
SELECT * FROM t1 LIMIT 2;
--sorted_result
SELECT * FROM t1 LIMIT 10;
--sorted_result
SELECT * FROM t1 ORDER BY t1_datetime LIMIT 5;
INSERT INTO t1 SELECT * FROM t1;
--sorted_result
SELECT MAX(t1_bigint) FROM t1 GROUP BY t1_text LIMIT 10;
--sorted_result
SELECT * FROM t1 WHERE t1_text like '%a%' LIMIT 10;
--sorted_result
SELECT * FROM t1 ORDER BY t1_bigint ASC LIMIT 0,1;
--sorted_result
SELECT * FROM t1 ORDER BY t1_bigint ASC LIMIT 1,1;
--sorted_result
SELECT * FROM t1 ORDER BY t1_bigint DESC LIMIT 1,4;
--sorted_result
#SELECT * FROM t1 LIMIT 0;
--error ER_PARSE_ERROR
SELECT * FROM t1 LIMIT @;
--error ER_PARSE_ERROR
SELECT * FROM t1 LIMIT -1;
--error ER_PARSE_ERROR
SELECT * FROM t1 LIMIT 'a';
# Clean UP
DROP DATABASE mcs_db2;
\ No newline at end of file
--source include/have_tianmu.inc
#
# Some basic order by statements #
# Author: syw
#
--disable_warnings
DROP DATABASE IF EXISTS db1;
--enable_warnings
CREATE DATABASE db1;
USE db1;
CREATE TABLE t1
(
t1_tinyint TINYINT DEFAULT 0,
t1_int INT DEFAULT NULL,
t1_bigint BIGINT,
t1_double DOUBLE,
t1_float FLOAT,
t1_blob BLOB,
t1_text TEXT,
t1_char CHAR(1),
t1_varchar VARCHAR(255) DEFAULT 'hello world!',
t1_datetime DATETIME
)ENGINE=tianmu;
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(203685477580676, -3.797693231E+108, -7.402866E+18, repeat('b',100), repeat('b',100), 'b', '2387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(303685477580676, -4.797693231, -8.402866, repeat('b',101), repeat('b',101), 'b', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('c',101), repeat('c',101), 'c', '3387-11-08 11:22:30.123');
INSERT INTO t1 (t1_bigint, t1_double, t1_float, t1_blob, t1_text, t1_char, t1_datetime)
VALUES(403685477580676, +54.797693231, +8.402866, repeat('2',102), repeat('d',102), 'd', '4387-11-08 11:22:30.123');
INSERT INTO t1 VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
SELECT * FROM t1;
SELECT * FROM t1 ORDER BY t1_tinyint;
SELECT * FROM t1 ORDER BY t1_tinyint ASC;
SELECT * FROM t1 ORDER BY t1_tinyint DESC;
SELECT * FROM t1 ORDER BY t1_int;
SELECT * FROM t1 ORDER BY t1_int ASC;
SELECT * FROM t1 ORDER BY t1_int DESC;
SELECT * FROM t1 ORDER BY t1_bigint;
SELECT * FROM t1 ORDER BY t1_bigint ASC;
SELECT * FROM t1 ORDER BY t1_bigint DESC;
SELECT * FROM t1 ORDER BY t1_double;
SELECT * FROM t1 ORDER BY t1_double ASC;
SELECT * FROM t1 ORDER BY t1_double DESC;
SELECT * FROM t1 ORDER BY t1_float;
SELECT * FROM t1 ORDER BY t1_float ASC;
SELECT * FROM t1 ORDER BY t1_float DESC;
SELECT * FROM t1 ORDER BY t1_blob;
SELECT * FROM t1 ORDER BY t1_blob ASC;
SELECT * FROM t1 ORDER BY t1_blob DESC;
SELECT * FROM t1 ORDER BY t1_text;
SELECT * FROM t1 ORDER BY t1_text ASC;
SELECT * FROM t1 ORDER BY t1_text DESC;
SELECT * FROM t1 ORDER BY t1_char;
SELECT * FROM t1 ORDER BY t1_char ASC;
SELECT * FROM t1 ORDER BY t1_char DESC;
SELECT * FROM t1 ORDER BY t1_varchar;
SELECT * FROM t1 ORDER BY t1_varchar ASC;
SELECT * FROM t1 ORDER BY t1_varchar DESC;
SELECT * FROM t1 ORDER BY t1_datetime;
SELECT * FROM t1 ORDER BY t1_datetime ASC;
SELECT * FROM t1 ORDER BY t1_datetime DESC;
#ORDER BY multiple columns
SELECT * FROM t1 ORDER BY t1_tinyint, t1_int, t1_bigint;
SELECT * FROM t1 ORDER BY t1_tinyint, t1_int, t1_bigint ASC;
SELECT * FROM t1 ORDER BY t1_tinyint, t1_int, t1_bigint DESC;
SELECT * FROM t1 ORDER BY t1_double, t1_float;
SELECT * FROM t1 ORDER BY t1_double, t1_float ASC;
SELECT * FROM t1 ORDER BY t1_double, t1_float DESC;
SELECT * FROM t1 ORDER BY t1_blob, t1_text, t1_char;
SELECT * FROM t1 ORDER BY t1_blob, t1_text, t1_char ASC;
SELECT * FROM t1 ORDER BY t1_blob, t1_text, t1_char DESC;
SELECT * FROM t1 ORDER BY t1_varchar, t1_datetime;
SELECT * FROM t1 ORDER BY t1_varchar, t1_datetime ASC;
SELECT * FROM t1 ORDER BY t1_varchar, t1_datetime DESC;
#Clean up
DROP DATABASE IF EXISTS db1;
\ No newline at end of file
--source include/have_tianmu.inc
--echo #
--echo #create temporary...like...
--echo #
--disable_warnings
drop table if exists t1;
--enable_warnings
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT, PRIMARY KEY (f1))engine=tianmu;
CREATE TEMPORARY TABLE t2 LIKE t1;
INSERT INTO t1 VALUES (1);
INSERT INTO t2 VALUES (1);
ALTER TABLE t2 COMMENT = 'ABC';
UPDATE t2, t1 SET t2.f1 = 2, t1.f1 = 9;
ALTER TABLE t2 COMMENT = 'DEF';
SELECT * FROM t1;
SELECT * FROM t2;
DROP TABLE t1, t2;
--echo #
--echo #The temporary table name is consistent with the normal indication
--echo #
CREATE TABLE t1 (c1 INT)engine=tianmu;
CREATE TEMPORARY TABLE `t1` (c1 INT)engine=tianmu;
SHOW CREATE TABLE t1;
DROP TABLE t1;
DROP TABLE t1;
--echo #
--echo # Create an existing temporary table name
--echo #
CREATE TABLE t1 (c1 INT)engine=tianmu;
CREATE TEMPORARY TABLE `t2` (c1 INT)engine=tianmu;
--error 1050
CREATE TEMPORARY TABLE `t2` (c1 INT)engine=tianmu;
DROP TABLE t1,t2;
--echo #
--echo # bug:646, create temporary..select...from
--echo #
#CREATE TABLE t1 (c1 INT)engine=tianmu;
#INSERT INTO t1 VALUES(1);
#CREATE TEMPORARY TABLE Temp1 SELECT * from t1;
#SELECT * FROM Temp1;
#DROP TABLE t1;
#DROP TABLE Temp1;
--echo #
--echo # bug 646,CREATE TEMPORARY..(PRIMARY KEY)
--echo #
#CREATE TABLE t1 ( a int )engine=tianmu;
#INSERT INTO t1 VALUES (1),(2),(1);
#--error ER_DUP_ENTRY
#CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) ENGINE=TIANMU SELECT a FROM t1;
--echo #
--echo # temporary The table name abnormal
--echo #
CREATE TEMPORARY TABLE `#sql1` (c1 INT)engine=tianmu;
ALTER TABLE `#sql1` RENAME `@sql2`;
INSERT INTO `@sql2` VALUES (1);
SHOW CREATE TABLE `@sql2`;
SELECT * FROM `@sql2`;
DROP TABLE `@sql2`;
#The table name is a combination of numbers and letters
CREATE TEMPORARY TABLE `@0023sql2` (c1 INT)engine=tianmu;
ALTER TABLE `@0023sql2` RENAME `#sql2`;
INSERT INTO `#sql2` VALUES (2);
DROP TABLE `#sql2`;
#Table names contain characters
CREATE TEMPORARY TABLE `tt+1` (c1 INT)engine=tianmu;
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册