Commit b8c217e6 authored by unknown's avatar unknown
Browse files

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.
parents cf465f7e 55b096b8
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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;
+10 −0
Original line number Diff line number Diff line
@@ -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;
+11 −0
Original line number Diff line number Diff line
@@ -1472,6 +1472,17 @@ class handler :public Sql_alloc
  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;}
+3 −1
Original line number Diff line number Diff line
@@ -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])
+6 −0
Original line number Diff line number Diff line
@@ -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