mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
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.
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user