mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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.
This commit is contained in:
@ -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;
|
|||||||
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,
|
|||||||
/* 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> ¬_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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user