Loading mysql-test/README +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ http://dev.mysql.com/doc/mysql/en/MySQL_test_suite.html You can create your own test cases. To create a test case: xeamacs t/test_case_name.test xemacs t/test_case_name.test in the file, put a set of SQL commands that will create some tables, load test data, run some queries to manipulate it. Loading mysql-test/r/variables.result +8 −0 Original line number Diff line number Diff line Loading @@ -520,3 +520,11 @@ SHOW VARIABLES LIKE 'table_cache'; Variable_name Value table_cache 1 SET GLOBAL table_cache=DEFAULT; create table t1 (a int); select a into @x from t1; Warnings: Warning 1329 No data to FETCH show warnings; Level Code Message Warning 1329 No data to FETCH drop table t1; mysql-test/t/variables.test +9 −0 Original line number Diff line number Diff line Loading @@ -388,3 +388,12 @@ SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE'; SET GLOBAL table_cache=-1; SHOW VARIABLES LIKE 'table_cache'; SET GLOBAL table_cache=DEFAULT; # # Bug#6282 Packet error with SELECT INTO # create table t1 (a int); select a into @x from t1; show warnings; drop table t1; sql/ha_innodb.cc +18 −0 Original line number Diff line number Diff line Loading @@ -2440,6 +2440,13 @@ ha_innobase::store_key_val_for_row( + (ulint)get_field_offset(table, field)), lenlen); /* In a column prefix index, we may need to truncate the stored value: */ if (len > key_part->length) { len = key_part->length; } /* The length in a key value is always stored in 2 bytes */ Loading Loading @@ -2476,6 +2483,11 @@ ha_innobase::store_key_val_for_row( ut_a(get_field_offset(table, field) == key_part->offset); /* All indexes on BLOB and TEXT are column prefix indexes, and we may need to truncate the data to be stored in the kay value: */ if (blob_len > key_part->length) { blob_len = key_part->length; } Loading @@ -2494,11 +2506,17 @@ ha_innobase::store_key_val_for_row( buff += key_part->length; } else { /* Here we handle all other data types except the true VARCHAR, BLOB and TEXT. Note that the column value we store may be also in a column prefix index. */ if (is_null) { buff += key_part->length; continue; } memcpy(buff, record + key_part->offset, key_part->length); buff += key_part->length; Loading sql/sql_class.cc +1 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ THD::THD() variables.pseudo_thread_id= 0; one_shot_set= 0; file_id = 0; query_id= 0; warn_id= 0; db_charset= global_system_variables.collation_database; bzero(ha_data, sizeof(ha_data)); Loading Loading
mysql-test/README +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ http://dev.mysql.com/doc/mysql/en/MySQL_test_suite.html You can create your own test cases. To create a test case: xeamacs t/test_case_name.test xemacs t/test_case_name.test in the file, put a set of SQL commands that will create some tables, load test data, run some queries to manipulate it. Loading
mysql-test/r/variables.result +8 −0 Original line number Diff line number Diff line Loading @@ -520,3 +520,11 @@ SHOW VARIABLES LIKE 'table_cache'; Variable_name Value table_cache 1 SET GLOBAL table_cache=DEFAULT; create table t1 (a int); select a into @x from t1; Warnings: Warning 1329 No data to FETCH show warnings; Level Code Message Warning 1329 No data to FETCH drop table t1;
mysql-test/t/variables.test +9 −0 Original line number Diff line number Diff line Loading @@ -388,3 +388,12 @@ SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE'; SET GLOBAL table_cache=-1; SHOW VARIABLES LIKE 'table_cache'; SET GLOBAL table_cache=DEFAULT; # # Bug#6282 Packet error with SELECT INTO # create table t1 (a int); select a into @x from t1; show warnings; drop table t1;
sql/ha_innodb.cc +18 −0 Original line number Diff line number Diff line Loading @@ -2440,6 +2440,13 @@ ha_innobase::store_key_val_for_row( + (ulint)get_field_offset(table, field)), lenlen); /* In a column prefix index, we may need to truncate the stored value: */ if (len > key_part->length) { len = key_part->length; } /* The length in a key value is always stored in 2 bytes */ Loading Loading @@ -2476,6 +2483,11 @@ ha_innobase::store_key_val_for_row( ut_a(get_field_offset(table, field) == key_part->offset); /* All indexes on BLOB and TEXT are column prefix indexes, and we may need to truncate the data to be stored in the kay value: */ if (blob_len > key_part->length) { blob_len = key_part->length; } Loading @@ -2494,11 +2506,17 @@ ha_innobase::store_key_val_for_row( buff += key_part->length; } else { /* Here we handle all other data types except the true VARCHAR, BLOB and TEXT. Note that the column value we store may be also in a column prefix index. */ if (is_null) { buff += key_part->length; continue; } memcpy(buff, record + key_part->offset, key_part->length); buff += key_part->length; Loading
sql/sql_class.cc +1 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ THD::THD() variables.pseudo_thread_id= 0; one_shot_set= 0; file_id = 0; query_id= 0; warn_id= 0; db_charset= global_system_variables.collation_database; bzero(ha_data, sizeof(ha_data)); Loading