Initialise "sorted" variable in constructor of QUICK_SELECT. The variable is...

Initialise "sorted" variable in constructor of QUICK_SELECT. The variable is set to 1 in test_if_skip_sort_order if we decide to optimize "order by" by uinsg index_read.
parent 6bbf1f8e
......@@ -45,6 +45,16 @@ a b c
2 3 5
3 4 6
4 5 8
select a, b, c from t1 where a!=2 and c=6;
a b c
3 4 6
select a, b, c from t1 where a!=2 order by a;
a b c
1 2 3
3 4 6
4 5 8
5 6 2
6 7 2
update t1 set c = 3 where b = 3;
select * from t1 order by a;
a b c
......
......@@ -25,6 +25,8 @@ select * from t1 where b <= 4 order by b;
# Test of reset_bounds
select tt1.* from t1 as tt1, t1 as tt2 use index(b) where tt1.b = tt2.b order by tt1.c;
select a, b, c from t1 where a!=2 and c=6;
select a, b, c from t1 where a!=2 order by a;
#
# Here we should add some "explain select" to verify that the ordered index is
......
......@@ -1350,6 +1350,9 @@ int ha_ndbcluster::ordered_index_scan(const key_range *start_key,
DBUG_EXECUTE("enter", print_key(start_key, "start_key"););
DBUG_EXECUTE("enter", print_key(end_key, "end_key"););
// Check that sorted seems to be initialised
DBUG_ASSERT(sorted == 0 || sorted == 1);
if(m_active_cursor == 0)
{
......
......@@ -393,7 +393,7 @@ SQL_SELECT::~SQL_SELECT()
#undef index // Fix for Unixware 7
QUICK_SELECT::QUICK_SELECT(THD *thd, TABLE *table, uint key_nr, bool no_alloc)
:dont_free(0),error(0),index(key_nr),max_used_key_length(0),
:dont_free(0),sorted(0),error(0),index(key_nr),max_used_key_length(0),
used_key_parts(0), head(table), it(ranges),range(0)
{
if (!no_alloc)
......
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