diff options
author | Alexander Barkov <bar@mariadb.com> | 2019-10-10 22:19:53 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2019-10-10 22:19:53 +0400 |
commit | 5e17b1f7cbfc256850ed139a0a4898040e16ff60 (patch) | |
tree | 23a2ca0da556bccef315b71a42ba419bdcfd2f08 /sql/item_func.h | |
parent | f5833a4e4507454a4f70510c97e6e75a709c5722 (diff) | |
download | mariadb-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.h | 7 |
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); |