mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	 bfed2c7d57
			
		
	
	
	bfed2c7d57
	
	
	
		
			
			whenever possible, partitioning should use the full partition plugin name, not the one byte legacy code. Normally, ha_partition can get the engine plugin from table_share->default_part_plugin. But in some cases, e.g. in DROP TABLE, the table isn't opened, table_share is NULL, and ha_partition has to parse the frm, much like dd_frm_type() does. temporary_tables.cc, sql_table.cc: When dropping a table, it must be deleted in the engine first, then frm file. Because frm can be the only true source of metadata that the engine might need for DROP. table.cc: when opening a partitioned table, if the engine for partitions is not found, do not fallback to MyISAM.
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			961 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			961 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| --source include/have_partition.inc
 | |
| --source include/not_blackhole.inc
 | |
| 
 | |
| --disable_warnings
 | |
| DROP TABLE IF EXISTS t1;
 | |
| --enable_warnings
 | |
| 
 | |
| let $MYSQLD_DATADIR= `SELECT @@datadir`;
 | |
| 
 | |
| --echo #
 | |
| --echo # Bug#46086: crash when dropping a partitioned table and
 | |
| --echo #            the original engine is disabled
 | |
| --echo # Copy a .frm and .par file which was created with:
 | |
| --echo # create table `t1` (`id` int primary key) engine=blackhole
 | |
| --echo # partition by key () partitions 1;
 | |
| --copy_file std_data/parts/t1_blackhole.frm $MYSQLD_DATADIR/test/t1.frm
 | |
| --copy_file std_data/parts/t1_blackhole.par $MYSQLD_DATADIR/test/t1.par
 | |
| SHOW TABLES;
 | |
| --replace_result $MYSQLD_DATADIR ./
 | |
| --error ER_NOT_FORM_FILE
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| # The replace is needed for Solaris
 | |
| --replace_result "Not owner" "Operation not permitted"
 | |
| --error ER_GET_ERRNO
 | |
| DROP TABLE t1;
 | |
| --list_files $MYSQLD_DATADIR/test t1*
 | |
| --remove_file $MYSQLD_DATADIR/test/t1.frm
 | |
| --remove_file $MYSQLD_DATADIR/test/t1.par
 |