diff options
author | unknown <sanja@askmonty.org> | 2013-12-18 15:59:51 +0200 |
---|---|---|
committer | unknown <sanja@askmonty.org> | 2013-12-18 15:59:51 +0200 |
commit | 57400ee6819e7dbb601b19f0ac223c491ef7359f (patch) | |
tree | 6284a8c2ad2ca3bc00f897f2d5a96169d66ac55d /sql/sql_lex.cc | |
parent | 3ec4296ec413e866c3efabc8dfa94172ad5f7c04 (diff) | |
download | mariadb-git-57400ee6819e7dbb601b19f0ac223c491ef7359f.tar.gz |
MDEV-5414: RAND() in a subselect : different behavior in MariaDB and MySQL
Materialization forced in case if rand() used in view or derived table to avoud several calls of rand for gting value of a field.
Fixed set variable uncachable flag from - it shouldbe a side effect not a random value.
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r-- | sql/sql_lex.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 8ba3c671598..ccc51e39785 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -2340,7 +2340,9 @@ bool st_lex::can_be_merged() // TODO: do not forget implement case when select_lex.table_list.elements==0 /* find non VIEW subqueries/unions */ - bool selects_allow_merge= select_lex.next_select() == 0; + bool selects_allow_merge= (select_lex.next_select() == 0 && + !(select_lex.uncacheable & + UNCACHEABLE_RAND)); if (selects_allow_merge) { for (SELECT_LEX_UNIT *tmp_unit= select_lex.first_inner_unit(); |