mirror of
https://github.com/MariaDB/server.git
synced 2025-12-04 17:23:46 +03:00
Merge mysql.com:/home/svoj/devel/bk/mysql-5.0-engines
into mysql.com:/home/svoj/devel/mysql/BUG26138/mysql-5.1-engines sql/handler.h: Auto merged sql/sql_table.cc: Auto merged storage/archive/ha_archive.cc: SCCS merged mysql-test/r/archive.result: Manually merged. mysql-test/t/archive.test: Manually merged. storage/example/ha_example.cc: Manually merged.
This commit is contained in:
@@ -12666,3 +12666,13 @@ t6 CREATE TABLE `t6` (
|
||||
KEY `a` (`a`)
|
||||
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1, t2, t4, t5, t6;
|
||||
drop table t1, t2, t4;
|
||||
create table t1 (i int) engine=archive;
|
||||
insert into t1 values (1);
|
||||
repair table t1 use_frm;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
select * from t1;
|
||||
i
|
||||
1
|
||||
drop table t1;
|
||||
|
||||
@@ -1540,3 +1540,13 @@ SHOW CREATE TABLE t6;
|
||||
--disable_warnings
|
||||
DROP TABLE t1, t2, t4, t5, t6;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# BUG#26138 - REPAIR TABLE with option USE_FRM erases all records in ARCHIVE
|
||||
# table
|
||||
#
|
||||
create table t1 (i int) engine=archive;
|
||||
insert into t1 values (1);
|
||||
repair table t1 use_frm;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
@@ -1472,6 +1472,17 @@ public:
|
||||
virtual void free_foreign_key_create_info(char* str) {}
|
||||
/* The following can be called without an open handler */
|
||||
virtual const char *table_type() const =0;
|
||||
/*
|
||||
If frm_error() is called then we will use this to find out what file
|
||||
extentions exist for the storage engine. This is also used by the default
|
||||
rename_table and delete_table method in handler.cc.
|
||||
|
||||
For engines that have two file name extentions (separate meta/index file
|
||||
and data file), the order of elements is relevant. First element of engine
|
||||
file name extentions array should be meta/index file extention. Second
|
||||
element - data file extention. This order is assumed by
|
||||
prepare_for_repair() when REPAIR TABLE ... USE_FRM is issued.
|
||||
*/
|
||||
virtual const char **bas_ext() const =0;
|
||||
|
||||
virtual int get_default_no_partitions(HA_CREATE_INFO *info) { return 1;}
|
||||
|
||||
@@ -3938,7 +3938,9 @@ static int prepare_for_repair(THD *thd, TABLE_LIST *table_list,
|
||||
|
||||
/*
|
||||
Check if this is a table type that stores index and data separately,
|
||||
like ISAM or MyISAM
|
||||
like ISAM or MyISAM. We assume fixed order of engine file name
|
||||
extentions array. First element of engine file name extentions array
|
||||
is meta/index file extention. Second element - data file extention.
|
||||
*/
|
||||
ext= table->file->bas_ext();
|
||||
if (!ext[0] || !ext[1])
|
||||
|
||||
@@ -247,6 +247,12 @@ ha_example::ha_example(handlerton *hton, TABLE_SHARE *table_arg)
|
||||
used by the default rename_table and delete_table method in
|
||||
handler.cc.
|
||||
|
||||
For engines that have two file name extentions (separate meta/index file
|
||||
and data file), the order of elements is relevant. First element of engine
|
||||
file name extentions array should be meta/index file extention. Second
|
||||
element - data file extention. This order is assumed by
|
||||
prepare_for_repair() when REPAIR TABLE ... USE_FRM is issued.
|
||||
|
||||
@see
|
||||
rename_table method in handler.cc and
|
||||
delete_table method in handler.cc
|
||||
|
||||
Reference in New Issue
Block a user