summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2021-09-01 13:32:57 +0300
committerMonty <monty@mariadb.org>2021-09-01 13:47:26 +0300
commit10f08aff159f916358cf9902fc5f6a976b8faeda (patch)
tree85f3350916ef361b26b959811d3e57fbb053bd09 /mysql-test
parent49ae199604fa3f8129ded9d4490df022f61d7a1d (diff)
downloadmariadb-git-10f08aff159f916358cf9902fc5f6a976b8faeda.tar.gz
Added support for CHECK TABLE for S3 tables
Other things: - Don't allocate an IO_CACHE for scanning tables of type BLOCK (It was never used in this case) - Fixed bug in page cache that cased a hang when trying to read a not existing S3 block.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/suite/s3/basic.result32
-rw-r--r--mysql-test/suite/s3/basic.test16
-rw-r--r--mysql-test/suite/s3/partition.result2
3 files changed, 32 insertions, 18 deletions
diff --git a/mysql-test/suite/s3/basic.result b/mysql-test/suite/s3/basic.result
index 34fe918353d..ac391ba3574 100644
--- a/mysql-test/suite/s3/basic.result
+++ b/mysql-test/suite/s3/basic.result
@@ -2,23 +2,25 @@ drop table if exists t1;
#
# Test simple create of s3 table
#
-create or replace table t1 (a int, b int, key (a)) engine=aria;
-insert into t1 select seq,seq+10 from seq_1_to_10000;
+create or replace table t1 (a int, b int, c varchar(1000), key (a), key(c)) engine=aria;
+insert into t1 select seq, seq+10, repeat(char(65+ mod(seq, 20)),mod(seq,1000)) from seq_1_to_10000;
alter table t1 engine=s3;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
- KEY `a` (`a`)
+ `c` varchar(1000) DEFAULT NULL,
+ KEY `a` (`a`),
+ KEY `c` (`c`)
) ENGINE=S3 DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
select * from information_schema.tables where table_schema="database" and table_name="t1";;
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY
-def # t1 BASE TABLE S3 10 Page 10000 33 335872 # 122880 0 NULL # # # latin1_swedish_ci NULL page_checksum=1 9007199254732800 #
+def # t1 BASE TABLE S3 10 Page 10000 567 5677056 # 761856 0 NULL # # # latin1_swedish_ci NULL page_checksum=1 2305843009213685760 #
show table status like "t1";
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary
-t1 S3 10 Page 10000 33 335872 # 122880 0 NULL # # # latin1_swedish_ci NULL page_checksum=1 # N
-select * from t1 limit 10;
+t1 S3 10 Page 10000 567 5677056 # 761856 0 NULL # # # latin1_swedish_ci NULL page_checksum=1 # N
+select a,b from t1 limit 10;
a b
1 11
2 12
@@ -33,7 +35,7 @@ a b
select count(*) from t1;
count(*)
10000
-select * from t1 where a between 10 and 20;
+select a,b from t1 where a between 10 and 20;
a b
10 20
11 21
@@ -60,9 +62,15 @@ ERROR HY000: Table 't1' is read only
#
set @@use_stat_tables='never';
truncate mysql.table_stats;
-check table t1;
+check table t1 fast;
Table Op Msg_type Msg_text
-database.t1 check status Table 'database.t1' is read only
+database.t1 check status Table is already up to date
+check table t1 quick;
+Table Op Msg_type Msg_text
+database.t1 check status OK
+check table t1 extended;
+Table Op Msg_type Msg_text
+database.t1 check status OK
analyze table t1;
Table Op Msg_type Msg_text
database.t1 analyze status Table 'database.t1' is read only
@@ -91,9 +99,11 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
- KEY `a` (`a`)
+ `c` varchar(1000) DEFAULT NULL,
+ KEY `a` (`a`),
+ KEY `c` (`c`)
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
-select * from t1 limit 10;
+select a,b from t1 limit 10;
a b
1 11
2 12
diff --git a/mysql-test/suite/s3/basic.test b/mysql-test/suite/s3/basic.test
index 2e104444e0f..99c2d8adb5d 100644
--- a/mysql-test/suite/s3/basic.test
+++ b/mysql-test/suite/s3/basic.test
@@ -13,8 +13,8 @@ drop table if exists t1;
--echo # Test simple create of s3 table
--echo #
-create or replace table t1 (a int, b int, key (a)) engine=aria;
-insert into t1 select seq,seq+10 from seq_1_to_10000;
+create or replace table t1 (a int, b int, c varchar(1000), key (a), key(c)) engine=aria;
+insert into t1 select seq, seq+10, repeat(char(65+ mod(seq, 20)),mod(seq,1000)) from seq_1_to_10000;
alter table t1 engine=s3;
show create table t1;
@@ -23,9 +23,9 @@ show create table t1;
--eval select * from information_schema.tables where table_schema="$database" and table_name="t1";
--replace_column 8 # 12 # 13 # 14 # 19 #
show table status like "t1";
-select * from t1 limit 10;
+select a,b from t1 limit 10;
select count(*) from t1;
-select * from t1 where a between 10 and 20;
+select a,b from t1 where a between 10 and 20;
--replace_column 9 #
explain select * from t1 where a between 10 and 20;
--error ER_OPEN_AS_READONLY
@@ -43,7 +43,11 @@ delete from t1 where a>10;
set @@use_stat_tables='never';
truncate mysql.table_stats;
--replace_result $database database
-check table t1;
+check table t1 fast;
+--replace_result $database database
+check table t1 quick;
+--replace_result $database database
+check table t1 extended;
--replace_result $database database
analyze table t1;
--replace_result $database database
@@ -61,7 +65,7 @@ select * from mysql.table_stats;
alter table t1 engine=aria;
show create table t1;
-select * from t1 limit 10;
+select a,b from t1 limit 10;
select count(*) from t1;
delete from t1 where a=1;
drop table t1;
diff --git a/mysql-test/suite/s3/partition.result b/mysql-test/suite/s3/partition.result
index 08f61da012c..86a70b3c694 100644
--- a/mysql-test/suite/s3/partition.result
+++ b/mysql-test/suite/s3/partition.result
@@ -64,7 +64,7 @@ count(*)
6
ALTER TABLE t2 CHECK PARTITION p3;
Table Op Msg_type Msg_text
-s3.t2 check status Table 's3.t2' is read only
+s3.t2 check status OK
SELECT count(*) FROM t2;
count(*)
6