summaryrefslogtreecommitdiff
path: root/sql/item_row.h
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2016-11-24 16:26:30 +0400
committerAlexander Barkov <bar@mariadb.org>2016-12-16 18:23:21 +0400
commit2637828065d5687c58b03be883a422b5d326af47 (patch)
tree66b504fc964650e1865488fa7b13a1ba775188cf /sql/item_row.h
parentcb16d753b2db936afff844cca0dd434fa7fe736b (diff)
downloadmariadb-git-2637828065d5687c58b03be883a422b5d326af47.tar.gz
MDEV-11344 Split Arg_comparator::set_compare_func() into virtual methods in Type_handler
This patch: - Introduces a new virtuial method Type_handler::set_comparator_func and moves pieces of the code from the switch in Arg_comparator::set_compare_func into the corresponding Type_handler_xxx::set_comparator_func. - Adds Type_handler::get_handler_by_cmp_type() - Moves Type_handler_hybrid_field_type::get_handler_by_result_type() to a static method Type_handler::get_handler_by_result_type(), for symmetry with similar methods: * Type_handler::get_handler_by_field_type() * Type_handler::get_handler_by_real_type() * Type_handler::get_handler_by_cmp_type() - Introduces Type_handler_row, to unify the code for the scalar data types and the ROW data type (currently for comparison purposes only). - Adds public type_handler_row, as it's now needed in item_row.h - Makes type_handler_null public, as it's now needed in item_cmpfunc.h Note, other type_handler_xxx will become public as well later. - Removes the global variable Arg_comparator::comparator_matrix, as it's not needed any more.
Diffstat (limited to 'sql/item_row.h')
-rw-r--r--sql/item_row.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/item_row.h b/sql/item_row.h
index bbfebb56010..f8858738b78 100644
--- a/sql/item_row.h
+++ b/sql/item_row.h
@@ -56,6 +56,7 @@ public:
{}
enum Type type() const { return ROW_ITEM; };
+ const Type_handler *type_handler() const { return &type_handler_row; }
void illegal_method_call(const char *);
bool is_null() { return null_value; }
void make_field(THD *thd, Send_field *)