summaryrefslogtreecommitdiff
path: root/sql/sql_union.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2004-05-05 21:21:41 +0300
committerunknown <bell@sanja.is.com.ua>2004-05-05 21:21:41 +0300
commitf6428e8bb9ac0cad24465513c5969a50cd13f6f2 (patch)
treedc6fc7f740dabf7da6ce3e21af3673dc04bbd8fd /sql/sql_union.cc
parentea646dce60994b8a5d36d575ed371144cd01eeb3 (diff)
downloadmariadb-git-f6428e8bb9ac0cad24465513c5969a50cd13f6f2.tar.gz
caching of queries with isammerge tables forbiden using general way
SQL_SELECT_LIMIT as default will be applied only for SELECT statement if there was not explicit LIMIT clause correct table list passed to class constructor of select_update mysql-test/r/subselect.result: do not show limit if it is not explicit mysql-test/r/union.result: test of LIMIT + ORDER mysql-test/t/union.test: test of LIMIT + ORDER sql/ha_isammrg.h: caching of queries with isammerge tables forbiden sql/sql_cache.cc: removed check on isammerge sql/sql_lex.cc: tag of explicit limit in statement sql/sql_lex.h: tag of explicit limit in statement sql/sql_parse.cc: blanks in empty line removed no limit by default (SQL_SELECT_LIMIT as default will be applied only for SELECT statement if there was not explicit LIMIT clause) sql/sql_union.cc: reverted incorrect patch sql/sql_update.cc: reverted incorrect patch correct table list passed to class constructor sql/sql_yacc.yy: explicit LIMIT marked
Diffstat (limited to 'sql/sql_union.cc')
-rw-r--r--sql/sql_union.cc15
1 files changed, 3 insertions, 12 deletions
diff --git a/sql/sql_union.cc b/sql/sql_union.cc
index 1b3995f30be..42b67a79683 100644
--- a/sql/sql_union.cc
+++ b/sql/sql_union.cc
@@ -377,21 +377,12 @@ int st_select_lex_unit::exec()
if (!thd->is_fatal_error) // Check if EOM
{
ulong options_tmp= thd->options;
- /*
- We have to take into the account a case when:
- SET SQL_SELECT_LIMIT was set.
- In mysql_new_select() function this value was copied to
- the fake_select_lex node of the top-level unit.
- Here below, we just take this value if global LIMIT was not applied
- to the entire UNION.
- */
- ha_rows select_limit= ((global_parameters->select_limit != HA_POS_ERROR) ?
- global_parameters->select_limit : fake_select_lex->select_limit);
thd->lex->current_select= fake_select_lex;
offset_limit_cnt= global_parameters->offset_limit;
- select_limit_cnt= select_limit + global_parameters->offset_limit;
+ select_limit_cnt= global_parameters->select_limit +
+ global_parameters->offset_limit;
- if (select_limit_cnt < select_limit)
+ if (select_limit_cnt < global_parameters->select_limit)
select_limit_cnt= HA_POS_ERROR; // no limit
if (select_limit_cnt == HA_POS_ERROR)
options_tmp&= ~OPTION_FOUND_ROWS;