summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/extra/rpl_tests/type_conversions.test28
-rw-r--r--mysql-test/suite/rpl/r/rpl_typeconv.result16
-rw-r--r--sql/sql_select.cc1
3 files changed, 45 insertions, 0 deletions
diff --git a/mysql-test/extra/rpl_tests/type_conversions.test b/mysql-test/extra/rpl_tests/type_conversions.test
index 2be1f6c0bec..6e52da59201 100644
--- a/mysql-test/extra/rpl_tests/type_conversions.test
+++ b/mysql-test/extra/rpl_tests/type_conversions.test
@@ -75,6 +75,34 @@ let $target_value = 'master,slave';
let $can_convert = 1;
source extra/rpl_tests/check_type.inc;
+let $source_type = SET('0','1','2','3','4','5','6');
+let $target_type = SET('0','1','2','3','4','5','6');
+let $source_value = '5';
+let $target_value = '5';
+let $can_convert = 1;
+source extra/rpl_tests/check_type.inc;
+
+let $source_type = SET('0','1','2','3','4','5','6');
+let $target_type = SET('0','1','2','3','4','5','6','7','8','9','10');
+let $source_value = '5';
+let $target_value = '5';
+let $can_convert = $if_is_non_lossy;
+source extra/rpl_tests/check_type.inc;
+
+let $source_type = SET('0','1','2','3','4','5','6','7','8','9','10');
+let $target_type = SET('0','1','2','3','4','5','6');
+let $source_value = '5';
+let $target_value = '5';
+let $can_convert = $if_is_lossy;
+source extra/rpl_tests/check_type.inc;
+
+let $source_type = SET('0','1','2','3','4','5','6','7','8','9','10');
+let $target_type = SET('0','1','2','3','4','5','6');
+let $source_value = '7';
+let $target_value = '';
+let $can_convert = $if_is_lossy;
+source extra/rpl_tests/check_type.inc;
+
let $source_type = TINYINT;
let $target_type = TINYINT;
let $source_value = 1;
diff --git a/mysql-test/suite/rpl/r/rpl_typeconv.result b/mysql-test/suite/rpl/r/rpl_typeconv.result
index 716956cf2cf..90451759406 100644
--- a/mysql-test/suite/rpl/r/rpl_typeconv.result
+++ b/mysql-test/suite/rpl/r/rpl_typeconv.result
@@ -78,6 +78,10 @@ ENUM('master',' CHAR(10) <Correct error>
SET('master','s CHAR(10) <Correct error>
SET('master','s SET('master','s <Correct value>
SET('master','s SET('master','s <Correct value>
+SET('0','1','2' SET('0','1','2' <Correct value>
+SET('0','1','2' SET('0','1','2' <Correct error>
+SET('0','1','2' SET('0','1','2' <Correct error>
+SET('0','1','2' SET('0','1','2' <Correct error>
TINYINT TINYINT <Correct value>
TINYINT SMALLINT <Correct error>
TINYINT MEDIUMINT <Correct error>
@@ -176,6 +180,10 @@ ENUM('master',' CHAR(10) ALL_NON_LOSSY <Correct error>
SET('master','s CHAR(10) ALL_NON_LOSSY <Correct error>
SET('master','s SET('master','s ALL_NON_LOSSY <Correct value>
SET('master','s SET('master','s ALL_NON_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_NON_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_NON_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_NON_LOSSY <Correct error>
+SET('0','1','2' SET('0','1','2' ALL_NON_LOSSY <Correct error>
TINYINT TINYINT ALL_NON_LOSSY <Correct value>
TINYINT SMALLINT ALL_NON_LOSSY <Correct value>
TINYINT MEDIUMINT ALL_NON_LOSSY <Correct value>
@@ -274,6 +282,10 @@ ENUM('master',' CHAR(10) ALL_LOSSY <Correct error>
SET('master','s CHAR(10) ALL_LOSSY <Correct error>
SET('master','s SET('master','s ALL_LOSSY <Correct value>
SET('master','s SET('master','s ALL_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_LOSSY <Correct error>
+SET('0','1','2' SET('0','1','2' ALL_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_LOSSY <Correct value>
TINYINT TINYINT ALL_LOSSY <Correct value>
TINYINT SMALLINT ALL_LOSSY <Correct error>
TINYINT MEDIUMINT ALL_LOSSY <Correct error>
@@ -372,6 +384,10 @@ ENUM('master',' CHAR(10) ALL_LOSSY,ALL_NON_LOSSY <Correct error>
SET('master','s CHAR(10) ALL_LOSSY,ALL_NON_LOSSY <Correct error>
SET('master','s SET('master','s ALL_LOSSY,ALL_NON_LOSSY <Correct value>
SET('master','s SET('master','s ALL_LOSSY,ALL_NON_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_LOSSY,ALL_NON_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_LOSSY,ALL_NON_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_LOSSY,ALL_NON_LOSSY <Correct value>
+SET('0','1','2' SET('0','1','2' ALL_LOSSY,ALL_NON_LOSSY <Correct value>
TINYINT TINYINT ALL_LOSSY,ALL_NON_LOSSY <Correct value>
TINYINT SMALLINT ALL_LOSSY,ALL_NON_LOSSY <Correct value>
TINYINT MEDIUMINT ALL_LOSSY,ALL_NON_LOSSY <Correct value>
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 940c84c4940..7d89a9a5a5e 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -10479,6 +10479,7 @@ TABLE *create_virtual_tmp_table(THD *thd, List<Create_field> &field_list)
share->blob_field= blob_field;
share->fields= field_count;
share->blob_ptr_size= portable_sizeof_char_ptr;
+ share->db_low_byte_first=1; // True for HEAP and MyISAM
setup_tmp_table_column_bitmaps(table, bitmaps);
/* Create all fields and calculate the total length of record */