diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-03-26 15:03:37 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-03-26 15:03:37 +0200 |
commit | ffc69dbd05d31f016f3ac53be9d878ce133e60d6 (patch) | |
tree | 056faecdd7c90011e5729943725cd038019bc683 /sql | |
parent | dbc0d576a3f402ae52423fe424ed0a68f49537ef (diff) | |
parent | ac4934535daadba0a45ffa407a7643ca3ff2712a (diff) | |
download | mariadb-git-ffc69dbd05d31f016f3ac53be9d878ce133e60d6.tar.gz |
Merge 10.2 into 10.3
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item.h | 7 | ||||
-rw-r--r-- | sql/item_cmpfunc.cc | 2 | ||||
-rw-r--r-- | sql/item_func.cc | 12 | ||||
-rw-r--r-- | sql/item_func.h | 1 | ||||
-rw-r--r-- | sql/sql_parse.cc | 6 | ||||
-rw-r--r-- | sql/sql_select.cc | 4 |
6 files changed, 14 insertions, 18 deletions
diff --git a/sql/item.h b/sql/item.h index 883cc791f38..d61667f3f2f 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1208,6 +1208,13 @@ public: } virtual String *val_nodeset(String*) { return 0; } + bool eval_const_cond() + { + DBUG_ASSERT(const_item()); + DBUG_ASSERT(!is_expensive()); + return val_bool(); + } + /* save_val() is method of val_* family which stores value in the given field. diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index b2fa753f2bd..11930bb18de 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -4609,7 +4609,7 @@ Item_cond::fix_fields(THD *thd, Item **ref) if (item->const_item() && !item->with_param && !item->is_expensive() && !cond_has_datetime_is_null(item)) { - if (item->val_int() == is_and_cond && top_level()) + if (item->eval_const_cond() == is_and_cond && top_level()) { /* a. This is "... AND true_cond AND ..." diff --git a/sql/item_func.cc b/sql/item_func.cc index 9fcde96c58e..5b34b6d5f34 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -71,18 +71,6 @@ bool check_reserved_words(const LEX_CSTRING *name) /** - @return - TRUE if item is a constant -*/ - -bool -eval_const_cond(COND *cond) -{ - return ((Item_func*) cond)->val_int() ? TRUE : FALSE; -} - - -/** Test if the sum of arguments overflows the ulonglong range. */ static inline bool test_if_sum_overflows_ull(ulonglong arg1, ulonglong arg2) diff --git a/sql/item_func.h b/sql/item_func.h index 194841c8337..7041272bd1d 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -3162,7 +3162,6 @@ Item *get_system_var(THD *thd, enum_var_type var_type, extern bool check_reserved_words(const LEX_CSTRING *name); double my_double_round(double value, longlong dec, bool dec_unsigned, bool truncate); -bool eval_const_cond(COND *cond); extern bool volatile mqh_used; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index e3a017a491a..7f4cc5adaf2 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. - Copyright (c) 2008, 2018, MariaDB + Copyright (c) 2008, 2019, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -3795,8 +3795,10 @@ mysql_execute_command(THD *thd) else { WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW); +#ifdef ENABLED_PROFILING if (lex->sql_command == SQLCOM_SHOW_PROFILE) thd->profiling.discard_current_query(); +#endif } thd->status_var.last_query_cost= 0.0; @@ -6666,7 +6668,7 @@ static bool check_rename_table(THD *thd, TABLE_LIST *first_table, 0, 0)) return 1; - /* check if these are refering to temporary tables */ + /* check if these are referring to temporary tables */ table->table= find_temporary_table_for_rename(thd, first_table, table); table->next_local->table= table->table; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 6915d4d23ca..1c9bfa397d2 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -16371,7 +16371,7 @@ Item::remove_eq_conds(THD *thd, Item::cond_result *cond_value, bool top_level_ar { if (const_item() && !is_expensive()) { - *cond_value= eval_const_cond(this) ? Item::COND_TRUE : Item::COND_FALSE; + *cond_value= eval_const_cond() ? Item::COND_TRUE : Item::COND_FALSE; return (COND*) 0; } *cond_value= Item::COND_OK; @@ -16385,7 +16385,7 @@ Item_bool_func2::remove_eq_conds(THD *thd, Item::cond_result *cond_value, { if (const_item() && !is_expensive()) { - *cond_value= eval_const_cond(this) ? Item::COND_TRUE : Item::COND_FALSE; + *cond_value= eval_const_cond() ? Item::COND_TRUE : Item::COND_FALSE; return (COND*) 0; } if ((*cond_value= eq_cmp_result()) != Item::COND_OK) |