summaryrefslogtreecommitdiff
path: root/sql/item.cc
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2011-07-03 14:59:01 -0700
committerIgor Babaev <igor@askmonty.org>2011-07-03 14:59:01 -0700
commit3f7d51d0d87478910750fea4019acbc1e573e9ba (patch)
tree9f084bea4824b8f3a5e524df592b32a5740e2ec5 /sql/item.cc
parentec3c26a515ba5f52db28cfb06deba664fc61b7b5 (diff)
downloadmariadb-git-3f7d51d0d87478910750fea4019acbc1e573e9ba.tar.gz
Fixed LP bug #804686.
The assert conditions in the functions Item_direct_ref_to_ident::transform and Item_direct_ref_to_ident::compile could be not valid after constant propagation when fields and field references may be substituted for constants. Not only these invalid asserts have been removed, but the functions containing them have been removed as well because now Item_ref::transform and Item_ref::compile can be used instead of them.
Diffstat (limited to 'sql/item.cc')
-rw-r--r--sql/item.cc34
1 files changed, 0 insertions, 34 deletions
diff --git a/sql/item.cc b/sql/item.cc
index cad3e60e5fc..0f549b914eb 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -6883,40 +6883,6 @@ bool Item_direct_ref::get_date(MYSQL_TIME *ltime,uint fuzzydate)
}
-Item* Item_direct_ref_to_ident::transform(Item_transformer transformer,
- uchar *argument)
-{
- DBUG_ASSERT(!current_thd->is_stmt_prepare());
-
- Item *new_item= ident->transform(transformer, argument);
- if (!new_item)
- return 0;
- DBUG_ASSERT(new_item->type() == FIELD_ITEM || new_item->type() == REF_ITEM);
-
- if (ident != new_item)
- current_thd->change_item_tree((Item**)&ident, new_item);
- return (this->*transformer)(argument);
-}
-
-
-Item* Item_direct_ref_to_ident::compile(Item_analyzer analyzer, uchar **arg_p,
- Item_transformer transformer,
- uchar *arg_t)
-{
- if (!(this->*analyzer)(arg_p))
- return 0;
-
- uchar *arg_v= *arg_p;
- Item *new_item= ident->compile(analyzer, &arg_v, transformer, arg_t);
- if (new_item && ident != new_item)
- {
- DBUG_ASSERT(new_item->type() == FIELD_ITEM || new_item->type() == REF_ITEM);
- current_thd->change_item_tree((Item**)&ident, new_item);
- }
- return (this->*transformer)(arg_t);
-}
-
-
Item_cache_wrapper::~Item_cache_wrapper()
{
DBUG_ASSERT(expr_cache == 0);