Commit 20e09b39 authored by Bjorn Munch's avatar Bjorn Munch

merge from main

parents f4b8ae3b 4469f0d3
...@@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM ...@@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM
# #
# When changing major version number please also check switch statement # When changing major version number please also check switch statement
# in mysqlbinlog::check_master_version(). # in mysqlbinlog::check_master_version().
AM_INIT_AUTOMAKE(mysql, 5.1.35) AM_INIT_AUTOMAKE(mysql, 5.1.36)
AM_CONFIG_HEADER([include/config.h:config.h.in]) AM_CONFIG_HEADER([include/config.h:config.h.in])
PROTOCOL_VERSION=10 PROTOCOL_VERSION=10
......
...@@ -1516,4 +1516,23 @@ DROP TABLE t1; ...@@ -1516,4 +1516,23 @@ DROP TABLE t1;
# DROP TABLE t1; # DROP TABLE t1;
# #
--echo #
--echo # Bug #44290: explain crashes for subquery with distinct in
--echo # SQL_SELECT::test_quick_select
--echo # (reproduced only with InnoDB tables)
--echo #
eval
CREATE TABLE t1 (c1 INT, c2 INT, c3 INT, KEY (c3), KEY (c2, c3))
ENGINE=$engine_type;
INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2);
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
EXPLAIN
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
DROP TABLE t1;
--echo End of 5.1 tests --echo End of 5.1 tests
...@@ -1687,6 +1687,25 @@ vid tid idx name type ...@@ -1687,6 +1687,25 @@ vid tid idx name type
3 1 2 c1 NULL 3 1 2 c1 NULL
3 1 1 pk NULL 3 1 1 pk NULL
DROP TABLE t1; DROP TABLE t1;
#
# Bug #44290: explain crashes for subquery with distinct in
# SQL_SELECT::test_quick_select
# (reproduced only with InnoDB tables)
#
CREATE TABLE t1 (c1 INT, c2 INT, c3 INT, KEY (c3), KEY (c2, c3))
ENGINE=InnoDB;
INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2);
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
1
1
EXPLAIN
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
2 DERIVED t1 index c3,c2 c2 10 NULL 5
DROP TABLE t1;
End of 5.1 tests End of 5.1 tests
drop table if exists t1, t2, t3; drop table if exists t1, t2, t3;
create table t1(a int); create table t1(a int);
......
...@@ -174,7 +174,7 @@ void *_mymalloc(size_t size, const char *filename, uint lineno, myf MyFlags) ...@@ -174,7 +174,7 @@ void *_mymalloc(size_t size, const char *filename, uint lineno, myf MyFlags)
data[size + 3]= MAGICEND3; data[size + 3]= MAGICEND3;
irem->filename= (char *) filename; irem->filename= (char *) filename;
irem->linenum= lineno; irem->linenum= lineno;
irem->datasize= (uint32) size; irem->datasize= size;
irem->prev= NULL; irem->prev= NULL;
/* Add this remember structure to the linked list */ /* Add this remember structure to the linked list */
......
...@@ -13471,6 +13471,7 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order, ...@@ -13471,6 +13471,7 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order,
{ {
select->cleanup(); // filesort did select select->cleanup(); // filesort did select
tab->select= 0; tab->select= 0;
table->quick_keys.clear_all(); // as far as we cleanup select->quick
} }
tab->select_cond=0; tab->select_cond=0;
tab->last_inner= 0; tab->last_inner= 0;
......
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