mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge neptunus.(none):/home/msvensson/mysql/bug9911
into neptunus.(none):/home/msvensson/mysql/mysql-4.1
This commit is contained in:
@@ -2601,4 +2601,18 @@ auto fld1 companynr fld3 fld4 fld5 fld6
|
||||
2 011401 37 breaking dreaded Steinberg W
|
||||
3 011402 37 Romans scholastics jarring
|
||||
4 011403 37 intercepted audiology tinily
|
||||
drop table t1, t2;
|
||||
create table t3 engine=archive select * from t2;
|
||||
select * from t3 where fld3='bonfire';
|
||||
auto fld1 companynr fld3 fld4 fld5 fld6
|
||||
1191 068504 00 bonfire corresponds positively
|
||||
select count(*) from t3;
|
||||
count(*)
|
||||
1203
|
||||
rename table t3 to t4;
|
||||
select * from t4 where fld3='bonfire';
|
||||
auto fld1 companynr fld3 fld4 fld5 fld6
|
||||
1191 068504 00 bonfire corresponds positively
|
||||
select count(*) from t4;
|
||||
count(*)
|
||||
1203
|
||||
drop table t1, t2, t4;
|
||||
|
@@ -1299,4 +1299,15 @@ INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
||||
SELECT * FROM t2;
|
||||
OPTIMIZE TABLE t2;
|
||||
SELECT * FROM t2;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Test rename of table
|
||||
#
|
||||
create table t3 engine=archive select * from t2;
|
||||
select * from t3 where fld3='bonfire';
|
||||
select count(*) from t3;
|
||||
rename table t3 to t4;
|
||||
select * from t4 where fld3='bonfire';
|
||||
select count(*) from t4;
|
||||
|
||||
drop table t1, t2, t4;
|
||||
|
@@ -427,6 +427,30 @@ const char **ha_archive::bas_ext() const
|
||||
{ static const char *ext[]= { ARZ, ARN, ARM, NullS }; return ext; }
|
||||
|
||||
|
||||
/*
|
||||
Rename all files that this handler defines in bas_ext list
|
||||
|
||||
NOTE Don't care if the .arn file is missing
|
||||
*/
|
||||
int ha_archive::rename_table(const char * from, const char * to)
|
||||
{
|
||||
DBUG_ENTER("ha_archive::rename_table");
|
||||
for (const char **ext=bas_ext(); *ext ; ext++)
|
||||
{
|
||||
if (rename_file_ext(from,to,*ext))
|
||||
{
|
||||
if (my_errno == ENOENT &&
|
||||
!my_strcasecmp(system_charset_info, *ext, ARN))
|
||||
continue;
|
||||
|
||||
DBUG_RETURN(my_errno);
|
||||
}
|
||||
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
When opening a file we:
|
||||
Create/get our shared structure.
|
||||
|
@@ -124,6 +124,7 @@ public:
|
||||
int optimize(THD* thd, HA_CHECK_OPT* check_opt);
|
||||
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
|
||||
enum thr_lock_type lock_type);
|
||||
int rename_table(const char * from, const char * to);
|
||||
};
|
||||
|
||||
bool archive_db_init(void);
|
||||
|
Reference in New Issue
Block a user