summaryrefslogtreecommitdiff
path: root/sql/item_func.h
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2019-10-10 22:19:53 +0400
committerAlexander Barkov <bar@mariadb.com>2019-10-10 22:19:53 +0400
commit5e17b1f7cbfc256850ed139a0a4898040e16ff60 (patch)
tree23a2ca0da556bccef315b71a42ba419bdcfd2f08 /sql/item_func.h
parentf5833a4e4507454a4f70510c97e6e75a709c5722 (diff)
downloadmariadb-git-5e17b1f7cbfc256850ed139a0a4898040e16ff60.tar.gz
A small cleanup for MDEV-16309 Split ::create_tmp_field() into virtual methods in Item
These two methods: - Item_result_field::create_tmp_field_ex() - Item_func_user_var::create_tmp_field_ex() had duplicate code, except that they used a different type handler. Adding a protected method Item_result_field::create_tmp_field_ex_from_handler() with a "const Type_handler*" parameter, and reusing it from the two mentioned methods.
Diffstat (limited to 'sql/item_func.h')
-rw-r--r--sql/item_func.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/item_func.h b/sql/item_func.h
index 6226b741e91..0f10e4b94e2 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -2732,7 +2732,12 @@ public:
:Item_hybrid_func(thd, item),
m_var_entry(item->m_var_entry), name(item->name) { }
Field *create_tmp_field_ex(MEM_ROOT *root, TABLE *table, Tmp_field_src *src,
- const Tmp_field_param *param);
+ const Tmp_field_param *param)
+ {
+ DBUG_ASSERT(fixed);
+ return create_tmp_field_ex_from_handler(root, table, src, param,
+ type_handler());
+ }
Field *create_field_for_create_select(MEM_ROOT *root, TABLE *table)
{ return create_table_field_from_handler(root, table); }
bool check_vcol_func_processor(void *arg);