diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-12-16 13:28:35 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-12-16 13:28:35 +0100 |
commit | c1a65228757e25aabccfcf77c494811ed1e5a633 (patch) | |
tree | b03a8303e1b94c975772db94079ee12e56818c15 /sql/rpl_utility.cc | |
parent | 4cee899fb71226285a34bf20a2380f63c93e3b6d (diff) | |
parent | d28d3ba40dc8ebef87199a2567ec96e9c5d744e2 (diff) | |
download | mariadb-git-c1a65228757e25aabccfcf77c494811ed1e5a633.tar.gz |
merge
Diffstat (limited to 'sql/rpl_utility.cc')
-rw-r--r-- | sql/rpl_utility.cc | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/sql/rpl_utility.cc b/sql/rpl_utility.cc index 1f67dd6ee8f..e8bc042e565 100644 --- a/sql/rpl_utility.cc +++ b/sql/rpl_utility.cc @@ -1,6 +1,5 @@ -/* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. - Copyright (c) 2011, 2013, Monty Program Ab. +/* Copyright (c) 2006, 2013, Oracle and/or its affiliates. + Copyright (c) 2011, 2013, Monty Program Ab This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -946,6 +945,7 @@ TABLE *table_def::create_conversion_table(THD *thd, Relay_log_info *rli, TABLE * DBUG_ENTER("table_def::create_conversion_table"); List<Create_field> field_list; + TABLE *conv_table= NULL; /* At slave, columns may differ. So we should create MY_MIN(columns@master, columns@slave) columns in the @@ -987,10 +987,15 @@ TABLE *table_def::create_conversion_table(THD *thd, Relay_log_info *rli, TABLE * break; case MYSQL_TYPE_DECIMAL: - precision= field_metadata(col); - decimals= static_cast<Field_num*>(target_table->field[col])->dec; - max_length= field_metadata(col); - break; + sql_print_error("In RBR mode, Slave received incompatible DECIMAL field " + "(old-style decimal field) from Master while creating " + "conversion table. Please consider changing datatype on " + "Master to new style decimal by executing ALTER command for" + " column Name: %s.%s.%s.", + target_table->s->db.str, + target_table->s->table_name.str, + target_table->field[col]->field_name); + goto err; case MYSQL_TYPE_TINY_BLOB: case MYSQL_TYPE_MEDIUM_BLOB: @@ -1018,7 +1023,9 @@ TABLE *table_def::create_conversion_table(THD *thd, Relay_log_info *rli, TABLE * field_def->interval= interval; } - TABLE *conv_table= create_virtual_tmp_table(thd, field_list); + conv_table= create_virtual_tmp_table(thd, field_list); + +err: if (conv_table == NULL) rli->report(ERROR_LEVEL, ER_SLAVE_CANT_CREATE_CONVERSION, ER(ER_SLAVE_CANT_CREATE_CONVERSION), |