Fixed temp tables to work with replication. It will not work if you stop the slave

while slave thread has temp tables - not hard to fix though, but it is time to go to bed

added a new test case for temp table replication and Slave_open_temp_tables
status variable.

Misc fixes


client/mysqltest.c:
  added disconnect command
mysql-test/create-test-result:
  fixed bugs so it actually works
mysql-test/t/include/master-slave.inc:
  establish alternate connections to master and slave
sql/mysql_priv.h:
  Slave_open_temp_tables
sql/mysqlbinlog.cc:
  fixed a bug in reading local binlogs
sql/mysqld.cc:
  added Slave_open_temp_tables status variable
sql/slave.cc:
  fixed freed memory reference in the error message
sql/sql_class.cc:
  slave_proxy_id
sql/sql_class.h:
  slave_proxy_id
sql/sql_parse.cc:
  small optimization - reorder eval in &&
BitKeeper/etc/ignore:
  Added mysql-test/r/3.23/rpl000001.b.result.reject mysql-test/r/3.23/rpl000012.result.reject to the ignore list
sql/sql_table.cc:
  added THD arg to rename_temporary_table
sql/unireg.h:
  the table_cache_key is now 4 bytes longer
This commit is contained in:
unknown 2000-11-25 23:29:01 -07:00
commit c3cc5856a5
16 changed files with 87 additions and 23 deletions

View file

@ -1437,7 +1437,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
}
/* Remove link to old table and rename the new one */
close_temporary_table(thd,table->table_cache_key,table_name);
if (rename_temporary_table(new_table, new_db, new_name))
if (rename_temporary_table(thd, new_table, new_db, new_name))
{ // Fatal error
close_temporary_table(thd,new_db,tmp_name);
my_free((gptr) new_table,MYF(0));
@ -1611,6 +1611,8 @@ copy_data_between_tables(TABLE *from,TABLE *to,
(copy_end++)->set(*ptr,def->field,0);
}
found_count=delete_count=0;
if(order) {
from->io_cache=(IO_CACHE*) my_malloc(sizeof(IO_CACHE),
MYF(MY_FAE | MY_ZEROFILL));
@ -1628,7 +1630,6 @@ copy_data_between_tables(TABLE *from,TABLE *to,
init_read_record(&info, thd, from, (SQL_SELECT *) 0, 1,1);
found_count=delete_count=0;
next_field=to->next_number_field;
while (!(error=info.read_record(&info)))
{