From b283e08cf3ac0d4fabb7e329a2e7cbe93056a04e Mon Sep 17 00:00:00 2001 From: "bell@sanja.is.com.ua" <> Date: Tue, 11 Mar 2003 18:34:00 +0200 Subject: [PATCH] fixed bug of unchecked random part of WHERE clause (bug #142) --- mysql-test/r/select.result | 1 + mysql-test/t/select.test | 17 ++++++++++++++++- sql/sql_select.cc | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index 5ac5de05f97..dcb796b8e00 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -1793,3 +1793,4 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_par t2 0 PRIMARY 1 auto A 1199 NULL NULL t2 0 fld1 1 fld1 A 1199 NULL NULL t2 1 fld3 1 fld3 A NULL NULL NULL +1 diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index cdb6ee57e0f..2caadd99dbb 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -1712,8 +1712,23 @@ show full columns from t2 from test like 'f%'; show full columns from t2 from test like 's%'; show keys from t2; +# +# random in WHERE clause +# + +drop table t1; +CREATE TABLE t1 ( + id mediumint(8) unsigned NOT NULL auto_increment, + pseudo varchar(35) NOT NULL default '', + PRIMARY KEY (id), + UNIQUE KEY pseudo (pseudo) +); +INSERT INTO t1 (pseudo) VALUES ('test'); +INSERT INTO t1 (pseudo) VALUES ('test1'); +SELECT 1 from t1 where rand() > 2; + # # Drop the test tables # -drop table t4, t3,t2, t1; +drop table t4, t3, t2, t1; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 8444a451965..bae64969fcd 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2257,6 +2257,8 @@ make_join_select(JOIN *join,SQL_SELECT *select,COND *cond) { JOIN_TAB *tab=join->join_tab+i; table_map current_map= tab->table->map; + if (i == join->tables-1) + current_map|= RAND_TABLE_BIT; bool use_quick_range=0; used_tables|=current_map;