64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
| --source setup.inc
 | |
| 
 | |
| # Test that it's possible to turn off inplace ALTER TABLE by
 | |
| # setting  ndb_use_copying_alter_table = 1. This means that
 | |
| # only queries where user explicitly requested ALGORITHM=INPLACE will
 | |
| # be allowed
 | |
| 
 | |
| # Save t1's table id
 | |
| let $table_id = `SELECT id FROM test.ndbinfo_dict_obj_info
 | |
|                    WHERE fq_name = 'ndb_ddl_test/def/t1'`;
 | |
| 
 | |
| #
 | |
| # Show that adding a column is inplace
 | |
| #
 | |
| ALTER TABLE t1
 | |
|   algorithm=inplace,
 | |
|   add column c int;
 | |
| 
 | |
| # Show t1's table id is the same
 | |
| let $new_table_id = `SELECT id FROM test.ndbinfo_dict_obj_info
 | |
|                     WHERE fq_name = 'ndb_ddl_test/def/t1'`;
 | |
| if ($table_id != $new_table_id)
 | |
| {
 | |
|   die The table t1 was not altered inplace, its table id changed;
 | |
| }
 | |
| 
 | |
| #
 | |
| # Force copying alter table and add a column (normally inplace)
 | |
| # which now are forced to copying due to the variable
 | |
| #
 | |
| set @@ndb_use_copying_alter_table = 1;
 | |
| ALTER TABLE t1
 | |
|   add column d int;
 | |
| set @@ndb_use_copying_alter_table = default;
 | |
| 
 | |
| # Check that t1's table id has changed since this was copying ALTER
 | |
| let $new_table_id = `SELECT id FROM test.ndbinfo_dict_obj_info
 | |
|                        WHERE fq_name = 'ndb_ddl_test/def/t1'`;
 | |
| if ($table_id == $new_table_id)
 | |
| {
 | |
|   die The table t1 was not altered copying, its table id did not change;
 | |
| }
 | |
| let $table_id = $new_table_id;
 | |
| 
 | |
| # Force copying alter table and add a column (normally inplace)
 | |
| # which now becomes inplace since user specified ALGORITHM=INPLACE
 | |
| set @@ndb_use_copying_alter_table = 1;
 | |
| ALTER TABLE t1
 | |
|   algorithm=inplace,
 | |
|   add column e int;
 | |
| set @@ndb_use_copying_alter_table = default;
 | |
| 
 | |
| # Show t1's table id is the same
 | |
| let $new_table_id = `SELECT id FROM test.ndbinfo_dict_obj_info
 | |
|                     WHERE fq_name = 'ndb_ddl_test/def/t1'`;
 | |
| if ($table_id != $new_table_id)
 | |
| {
 | |
|   die The table t1 was not altered inplace, its table id changed;
 | |
| }
 | |
| 
 | |
| --source cleanup.inc
 | |
| 
 | |
| 
 |