Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge develop to main #177

Merged
merged 4 commits into from
May 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pull-requests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,4 @@ jobs:
sudo chown -R $USER:$USER /home/shannon-bin/
cd /home/shannon-bin/mysql-test/
sudo chmod -R u+rwx mysql-test-run.pl
./mysql-test-run.pl --suite=main,innodb,secondary_engine --mysqld=--user=$USER --mysqld=--default-storage-engine=innodb --nowarnings --force --nocheck-testcases --retry=0 --parallel=5
./mysql-test-run.pl --suite=main,innodb,secondary_engine --mysqld=--user=$USER --mysqld=--default-storage-engine=innodb --nowarnings --force --nocheck-testcases --retry=0 --parallel=10
4 changes: 2 additions & 2 deletions mysql-test/suite/secondary_engine/r/index_statistics.result
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ test.t1 analyze status OK
# Uses the primary index to determine 10% filtering effect (one row).
EXPLAIN FORMAT=TREE SELECT * FROM t1 WHERE id = 1;
EXPLAIN
-> Constant row from t1 (rows=1)
-> Rows fetched before execution (rows=1)

Warnings:
Note 1003 Query is executed in secondary engine; the actual query plan may diverge from the printed one
Expand Down Expand Up @@ -86,7 +86,7 @@ Note 1003 Query is executed in secondary engine; the actual query plan may diver
# No matching rows. Rounds up estimates to one matching row (10%).
EXPLAIN FORMAT=TREE SELECT * FROM t1 WHERE id = 100;
EXPLAIN
-> Constant row from t1 (rows=1)
-> Zero rows (no matching row in const table) (rows=0)

Warnings:
Note 1003 Query is executed in secondary engine; the actual query plan may diverge from the printed one
Expand Down
124 changes: 71 additions & 53 deletions mysql-test/suite/secondary_engine/r/shannon_case1.result
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,40 @@ set use_secondary_engine=forced;
create table tt (score int , name char(10), id int primary key, gender char(1)) secondary_engine=rapid;
alter table tt secondary_load;
insert into tt values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
select * from tt where score >=1 and score < 3;
select * from tt where score >=1 and score < 3 order by id;
score name id gender
select * from tt where score >=1 and id < 3;
1 n1 1 m
2 n2 2 f
select * from tt where score >=1 and id < 3 order by id;
score name id gender
select * from tt where id >=1 and id < 3;
1 n1 1 m
2 n2 2 f
select * from tt where id >=1 and id < 3 order by id;
score name id gender
1 n1 1 m
2 n2 2 f
create table tt1 (score int, name char(10), id int, gender char(1), primary key(id, score)) secondary_engine=rapid;
insert into tt1 values(10, 'n1', 1, 'm'), (20, 'n2', 2, 'f'), (30, 'n3', 3, 'm');
alter table tt1 secondary_load;
select * from tt1 where score >=1 and id < 3;
select * from tt1 where score >=1 and id < 3 order by id;
score name id gender
10 n1 1 m
20 n2 2 f
select * from tt1 where score >=1 and score < 3;
select * from tt1 where score >=1 and score < 3 order by id;
score name id gender
select * from tt1 where id >=1 and id < 3;
select * from tt1 where id >=1 and id < 3 order by id;
score name id gender
10 n1 1 m
20 n2 2 f
select score from tt1 where id > 2 and score = 30 ;
select score from tt1 where id > 2 and score = 30 order by id;
score
30
create table tt2 (score int, name char(10), id int, gender char(1));
insert into tt2 values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
alter table tt2 secondary_engine=rapid;
alter table tt2 secondary_load;
ERROR 42000: This table type requires a primary key
select * from tt2;
select * from tt2 order by id;
score name id gender
1 n1 1 m
2 n2 2 f
Expand All @@ -41,7 +47,7 @@ insert into tt3 values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
alter table tt3 secondary_engine=rapid;
alter table tt3 secondary_load;
ERROR 42000: This table type requires a primary key
select * from tt3 where score >1;
select * from tt3 where score >1 order by id;
score name id gender
2 n2 2 f
3 n3 3 m
Expand All @@ -54,59 +60,65 @@ score name id gender
1.1 n1 1 m
2.2 n2 2 f
3.3 n3 3 m
select * from tt4 where score > 1.1;
select * from tt4 where score > 1.1 order by id;
score name id gender
3.3 n3 3 m
2.2 n2 2 f
select * from tt4 where score =1.1;
3.3 n3 3 m
select * from tt4 where score =1.1 order by id;
score name id gender
1.1 n1 1 m
select * from tt4 where id =2;
select * from tt4 where id =2 order by id;
score name id gender
2.2 n2 2 f
select * from tt4 where score > 1.1 and id > 1;
select * from tt4 where score > 1.1 and id > 1 order by id;
score name id gender
3.3 n3 3 m
2.2 n2 2 f
select * from tt4 where score < 2.3 and id < 4;
3.3 n3 3 m
select * from tt4 where score < 2.3 and id < 4 order by id;
score name id gender
2.2 n2 2 f
1.1 n1 1 m
2.2 n2 2 f
drop database sh_test1;
create database sh_test1;
use sh_test1;
set use_secondary_engine=forced;
create table tt (score int , name char(10), id int primary key, gender char(1)) secondary_engine=rapid;
alter table tt secondary_load;
insert into tt values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
select * from tt where score >=1 and score < 3;
select * from tt where score >=1 and score < 3 order by id;
score name id gender
select * from tt where score >=1 and id < 3;
1 n1 1 m
2 n2 2 f
select * from tt where score >=1 and id < 3 order by id;
score name id gender
select * from tt where id >=1 and id < 3;
1 n1 1 m
2 n2 2 f
select * from tt where id >=1 and id < 3 order by id;
score name id gender
1 n1 1 m
2 n2 2 f
create table tt1 (score int, name char(10), id int, gender char(1), primary key(id, score)) secondary_engine=rapid;
insert into tt1 values(10, 'n1', 1, 'm'), (20, 'n2', 2, 'f'), (30, 'n3', 3, 'm');
alter table tt1 secondary_load;
select * from tt1 where score >=1 and id < 3;
select * from tt1 where score >=1 and id < 3 order by id;
score name id gender
10 n1 1 m
20 n2 2 f
select * from tt1 where score >=1 and score < 3;
select * from tt1 where score >=1 and score < 3 order by id;
score name id gender
select * from tt1 where id >=1 and id < 3;
select * from tt1 where id >=1 and id < 3 order by id;
score name id gender
10 n1 1 m
20 n2 2 f
select score from tt1 where id > 2 and score = 30 ;
select score from tt1 where id > 2 and score = 30 order by id;
score
30
create table tt2 (score int, name char(10), id int, gender char(1));
insert into tt2 values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
alter table tt2 secondary_engine=rapid;
alter table tt2 secondary_load;
ERROR 42000: This table type requires a primary key
select * from tt2;
select * from tt2 order by id;
score name id gender
1 n1 1 m
2 n2 2 f
Expand All @@ -116,72 +128,78 @@ insert into tt3 values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
alter table tt3 secondary_engine=rapid;
alter table tt3 secondary_load;
ERROR 42000: This table type requires a primary key
select * from tt3 where score >1;
select * from tt3 where score >1 order by id;
score name id gender
2 n2 2 f
3 n3 3 m
create table tt4 (score double primary key, name char(10), id int, gender char(1));
insert into tt4 values(1.1, 'n1', 1, 'm'), (2.2, 'n2', 2, 'f'), (3.3, 'n3', 3, 'm');
alter table tt4 secondary_engine=rapid;
alter table tt4 secondary_load;
select * from tt4;
select * from tt4 order by id;
score name id gender
1.1 n1 1 m
2.2 n2 2 f
3.3 n3 3 m
select * from tt4 where score > 1.1;
select * from tt4 where score > 1.1 order by id;
score name id gender
3.3 n3 3 m
2.2 n2 2 f
select * from tt4 where score =1.1;
3.3 n3 3 m
select * from tt4 where score =1.1 order by id;
score name id gender
1.1 n1 1 m
select * from tt4 where id =2;
select * from tt4 where id =2 order by id;
score name id gender
2.2 n2 2 f
select * from tt4 where score > 1.1 and id > 1;
select * from tt4 where score > 1.1 and id > 1 order by id;
score name id gender
3.3 n3 3 m
2.2 n2 2 f
select * from tt4 where score < 2.3 and id < 4;
3.3 n3 3 m
select * from tt4 where score < 2.3 and id < 4 order by id;
score name id gender
2.2 n2 2 f
1.1 n1 1 m
2.2 n2 2 f
drop database sh_test1;
create database sh_test1;
use sh_test1;
set use_secondary_engine=forced;
create table tt (score int , name char(10), id int primary key, gender char(1)) secondary_engine=rapid;
alter table tt secondary_load;
insert into tt values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
select * from tt where score >=1 and score < 3;
select * from tt where score >=1 and score < 3 order by id;
score name id gender
select * from tt where score >=1 and id < 3;
1 n1 1 m
2 n2 2 f
select * from tt where score >=1 and id < 3 order by id;
score name id gender
select * from tt where id >=1 and id < 3;
1 n1 1 m
2 n2 2 f
select * from tt where id >=1 and id < 3 order by id;
score name id gender
1 n1 1 m
2 n2 2 f
create table tt1 (score int, name char(10), id int, gender char(1), primary key(id, score)) secondary_engine=rapid;
insert into tt1 values(10, 'n1', 1, 'm'), (20, 'n2', 2, 'f'), (30, 'n3', 3, 'm');
alter table tt1 secondary_load;
select * from tt1 where score >=1 and id < 3;
select * from tt1 where score >=1 and id < 3 order by id;
score name id gender
10 n1 1 m
20 n2 2 f
select * from tt1 where score >=1 and score < 3;
select * from tt1 where score >=1 and score < 3 order by id;
score name id gender
select * from tt1 where id >=1 and id < 3;
select * from tt1 where id >=1 and id < 3 order by id;
score name id gender
10 n1 1 m
20 n2 2 f
select score from tt1 where id > 2 and score = 30 ;
select score from tt1 where id > 2 and score = 30 order by id;
score
30
create table tt2 (score int, name char(10), id int, gender char(1));
insert into tt2 values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
alter table tt2 secondary_engine=rapid;
alter table tt2 secondary_load;
ERROR 42000: This table type requires a primary key
select * from tt2;
select * from tt2 order by id;
score name id gender
1 n1 1 m
2 n2 2 f
Expand All @@ -191,35 +209,35 @@ insert into tt3 values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm');
alter table tt3 secondary_engine=rapid;
alter table tt3 secondary_load;
ERROR 42000: This table type requires a primary key
select * from tt3 where score >1;
select * from tt3 where score >1 order by id;
score name id gender
2 n2 2 f
3 n3 3 m
create table tt4 (score double primary key, name char(10), id int, gender char(1));
insert into tt4 values(1.1, 'n1', 1, 'm'), (2.2, 'n2', 2, 'f'), (3.3, 'n3', 3, 'm');
alter table tt4 secondary_engine=rapid;
alter table tt4 secondary_load;
select * from tt4;
select * from tt4 order by id;
score name id gender
1.1 n1 1 m
2.2 n2 2 f
3.3 n3 3 m
select * from tt4 where score > 1.1;
select * from tt4 where score > 1.1 order by id;
score name id gender
3.3 n3 3 m
2.2 n2 2 f
select * from tt4 where score =1.1;
3.3 n3 3 m
select * from tt4 where score =1.1 order by id;
score name id gender
1.1 n1 1 m
select * from tt4 where id =2;
select * from tt4 where id =2 order by id;
score name id gender
2.2 n2 2 f
select * from tt4 where score > 1.1 and id > 1;
select * from tt4 where score > 1.1 and id > 1 order by id;
score name id gender
3.3 n3 3 m
2.2 n2 2 f
select * from tt4 where score < 2.3 and id < 4;
3.3 n3 3 m
select * from tt4 where score < 2.3 and id < 4 order by id;
score name id gender
2.2 n2 2 f
1.1 n1 1 m
2.2 n2 2 f
drop database sh_test1;
44 changes: 44 additions & 0 deletions mysql-test/suite/secondary_engine/r/shannon_case2.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
create database sh_test2;
use sh_test2;
set use_secondary_engine=forced;
create table tt1 (score int, name char(10), id int, gender char(1), primary key(id, score)) secondary_engine=rapid;
insert into tt1 values(10, 'n1', 1, 'm'), (20, 'n2', 2, 'f'), (30, 'n3', 3, 'm');
insert into tt1 values(1, 'n1', 1, 'm'), (2, 'n2', 2, 'f'), (3, 'n3', 3, 'm'), (4,'n4',4,'f');
alter table tt1 secondary_load;
select * from tt1 where score >=1 and id < 3 order by id;
score name id gender
1 n1 1 m
10 n1 1 m
2 n2 2 f
20 n2 2 f
select * from tt1 where score >=1 and score < 3 order by id;
score name id gender
1 n1 1 m
2 n2 2 f
select * from tt1 where id >=1 and id < 3 order by id;
score name id gender
1 n1 1 m
10 n1 1 m
2 n2 2 f
20 n2 2 f
select score from tt1 where id > 2 and score = 30 order by id;
score
30
select count(1) from tt1;
count(1)
7
select count(*) from tt1;
count(*)
7
select count(score), gender from tt1 group by gender order by gender;
count(score) gender
3 f
4 m
select sum(score), gender from tt1 group by gender order by gender;
sum(score) gender
26 f
44 m
select sum(score), gender from tt1 group by gender having sum(score) > 30 order by gender;
sum(score) gender
44 m
drop database sh_test2;
Loading