Loading mysql-test/r/insert_select.result +4 −0 Original line number Diff line number Diff line Loading @@ -686,3 +686,7 @@ ERROR 42S22: Unknown column 'z' in 'field list' insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x); ERROR 42S22: Unknown column 't2.x' in 'field list' drop table t1,t2; CREATE TABLE t1 (a int PRIMARY KEY); INSERT INTO t1 values (1), (2); INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1; DROP TABLE t1; mysql-test/t/insert_select.test +13 −0 Original line number Diff line number Diff line Loading @@ -224,4 +224,17 @@ insert into t1(x,y) select x,z from t2 on duplicate key update x=values(z); insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x); drop table t1,t2; # # Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big # tables # #Note: not an exsaustive test : just a check of the code path. CREATE TABLE t1 (a int PRIMARY KEY); INSERT INTO t1 values (1), (2); INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1; DROP TABLE t1; # End of 4.1 tests sql/sql_select.cc +8 −2 Original line number Diff line number Diff line Loading @@ -1068,8 +1068,9 @@ JOIN::optimize() group_list ? 0 : select_distinct, group_list && simple_group, select_options, (order == 0 || skip_sort_order) ? select_limit : HA_POS_ERROR, (order == 0 || skip_sort_order || test(select_options & OPTION_BUFFER_RESULT)) ? select_limit : HA_POS_ERROR, (char *) ""))) DBUG_RETURN(1); Loading Loading @@ -8814,6 +8815,11 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields, keyinfo->key_length+= key_part_info->length; } } else { set_if_smaller(table->max_rows, rows_limit); param->end_write_records= rows_limit; } if (distinct && field_count != param->hidden_field_count) { Loading Loading
mysql-test/r/insert_select.result +4 −0 Original line number Diff line number Diff line Loading @@ -686,3 +686,7 @@ ERROR 42S22: Unknown column 'z' in 'field list' insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x); ERROR 42S22: Unknown column 't2.x' in 'field list' drop table t1,t2; CREATE TABLE t1 (a int PRIMARY KEY); INSERT INTO t1 values (1), (2); INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1; DROP TABLE t1;
mysql-test/t/insert_select.test +13 −0 Original line number Diff line number Diff line Loading @@ -224,4 +224,17 @@ insert into t1(x,y) select x,z from t2 on duplicate key update x=values(z); insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x); drop table t1,t2; # # Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big # tables # #Note: not an exsaustive test : just a check of the code path. CREATE TABLE t1 (a int PRIMARY KEY); INSERT INTO t1 values (1), (2); INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1; DROP TABLE t1; # End of 4.1 tests
sql/sql_select.cc +8 −2 Original line number Diff line number Diff line Loading @@ -1068,8 +1068,9 @@ JOIN::optimize() group_list ? 0 : select_distinct, group_list && simple_group, select_options, (order == 0 || skip_sort_order) ? select_limit : HA_POS_ERROR, (order == 0 || skip_sort_order || test(select_options & OPTION_BUFFER_RESULT)) ? select_limit : HA_POS_ERROR, (char *) ""))) DBUG_RETURN(1); Loading Loading @@ -8814,6 +8815,11 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields, keyinfo->key_length+= key_part_info->length; } } else { set_if_smaller(table->max_rows, rows_limit); param->end_write_records= rows_limit; } if (distinct && field_count != param->hidden_field_count) { Loading