Commit 3e335144 authored by unknown's avatar unknown

Two bug fixes


mysql-test/r/innodb.result:
  Fix for a bug that caused queries with ORDER BY field_in_select_list
  to be returned entirely unsorted.
mysql-test/t/innodb.test:
  Fix for a bug that caused queries with ORDER BY field_in_select_list
  to be returned entirely unsorted.
sql/sql_select.cc:
  Fix for a bug that caused queries with ORDER BY field_in_select_list
  to be returned entirely unsorted.
sql/sql_update.cc:
  Fix for a glitch that caused too many tables to be locked.
parent d5f3f550
...@@ -1207,6 +1207,16 @@ SET AUTOCOMMIT=0; ...@@ -1207,6 +1207,16 @@ SET AUTOCOMMIT=0;
INSERT INTO t1 ( B_ID ) VALUES ( 1 ); INSERT INTO t1 ( B_ID ) VALUES ( 1 );
INSERT INTO t2 ( NEXT_T ) VALUES ( 1 ); INSERT INTO t2 ( NEXT_T ) VALUES ( 1 );
ROLLBACK; ROLLBACK;
Warning: Some non-transactional changed tables couldn't be rolled back
SELECT * FROM t1; SELECT * FROM t1;
B_ID B_ID
drop table t1,t2; drop table t1,t2;
create table t1 ( pk int primary key, parent int not null, child int not null, index (parent) ) type = innodb;
insert into t1 values (1,0,4), (2,1,3), (3,2,1), (4,1,2);
select distinct parent,child from t1 order by parent;
parent child
0 4
1 2
1 3
2 1
drop table t1;
...@@ -802,6 +802,11 @@ CREATE TABLE t1 ( B_ID INTEGER NOT NULL PRIMARY KEY) TYPE=InnoDB; ...@@ -802,6 +802,11 @@ CREATE TABLE t1 ( B_ID INTEGER NOT NULL PRIMARY KEY) TYPE=InnoDB;
SET AUTOCOMMIT=0; SET AUTOCOMMIT=0;
INSERT INTO t1 ( B_ID ) VALUES ( 1 ); INSERT INTO t1 ( B_ID ) VALUES ( 1 );
INSERT INTO t2 ( NEXT_T ) VALUES ( 1 ); INSERT INTO t2 ( NEXT_T ) VALUES ( 1 );
-- error 1196
ROLLBACK; ROLLBACK;
SELECT * FROM t1; SELECT * FROM t1;
drop table t1,t2; drop table t1,t2;
create table t1 ( pk int primary key, parent int not null, child int not null, index (parent) ) type = innodb;
insert into t1 values (1,0,4), (2,1,3), (3,2,1), (4,1,2);
select distinct parent,child from t1 order by parent;
drop table t1;
...@@ -555,6 +555,8 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds, ...@@ -555,6 +555,8 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
/* Change DISTINCT to GROUP BY */ /* Change DISTINCT to GROUP BY */
select_distinct= 0; select_distinct= 0;
no_order= !order; no_order= !order;
if (order && skip_sort_order)
join.tmp_table_param.quick_group=0;
if (all_order_fields_used) if (all_order_fields_used)
order=0; order=0;
join.group=1; // For end_write_group join.group=1; // For end_write_group
......
...@@ -478,7 +478,14 @@ int multi_update::prepare(List<Item> &not_used_values) ...@@ -478,7 +478,14 @@ int multi_update::prepare(List<Item> &not_used_values)
table->used_keys=0; table->used_keys=0;
table->pos_in_table_list= tl; table->pos_in_table_list= tl;
} }
else
{
table_ref->lock_type=TL_READ;
mysql_unlock_some_tables(thd,&table,1);
}
} }
table_count= update.elements; table_count= update.elements;
update_tables= (TABLE_LIST*) update.first; update_tables= (TABLE_LIST*) update.first;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment