Commit 77a56a6a authored by unknown's avatar unknown

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.


mysql-test/r/ndb_index_ordered.result:
  Another test to check the use of "sorted" in combination with reset_bounds()
mysql-test/t/ndb_index_ordered.test:
  Another test to check the use of "sorted" in combination with reset_bounds()
sql/ha_ndbcluster.cc:
  Check that sorted is set to 0 or 1.
sql/opt_range.cc:
  Initialise the sorted variable to zero QUICK_SELECT constructor.
parent a4475441
...@@ -45,6 +45,16 @@ a b c ...@@ -45,6 +45,16 @@ a b c
2 3 5 2 3 5
3 4 6 3 4 6
4 5 8 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; update t1 set c = 3 where b = 3;
select * from t1 order by a; select * from t1 order by a;
a b c a b c
......
...@@ -25,6 +25,8 @@ select * from t1 where b <= 4 order by b; ...@@ -25,6 +25,8 @@ select * from t1 where b <= 4 order by b;
# Test of reset_bounds # 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 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 # Here we should add some "explain select" to verify that the ordered index is
......
...@@ -1351,6 +1351,9 @@ int ha_ndbcluster::ordered_index_scan(const key_range *start_key, ...@@ -1351,6 +1351,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(start_key, "start_key"););
DBUG_EXECUTE("enter", print_key(end_key, "end_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) if(m_active_cursor == 0)
{ {
restart= false; restart= false;
......
...@@ -393,7 +393,7 @@ SQL_SELECT::~SQL_SELECT() ...@@ -393,7 +393,7 @@ SQL_SELECT::~SQL_SELECT()
#undef index // Fix for Unixware 7 #undef index // Fix for Unixware 7
QUICK_SELECT::QUICK_SELECT(THD *thd, TABLE *table, uint key_nr, bool no_alloc) 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) used_key_parts(0), head(table), it(ranges),range(0)
{ {
if (!no_alloc) 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