summaryrefslogtreecommitdiff
path: root/libmysqld
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2015-09-30 12:37:34 +0400
committerAlexander Barkov <bar@mariadb.org>2015-09-30 12:37:34 +0400
commitcc9cfecab78bde9376e4406bf24506e92fdaaeac (patch)
tree1ca3c873ef881d5e25be4aa390253f7eeb17c4ec /libmysqld
parent09b87d6293b4b41321ba98366d5d7ade9ad681d3 (diff)
downloadmariadb-git-cc9cfecab78bde9376e4406bf24506e92fdaaeac.tar.gz
MDEV-8865 Wrong field type or metadata for COALESCE(signed_int_column, unsigned_int_column)
Item_func_hybrid_field_type did not return correct field_type(), cmp_type() and result_type() in some cases, because cached_result_type and cached_field_type were set in independent pieces of the code and did not properly match to each other. Fix: - Removing Item_func_hybrid_result_type - Deriving Item_func_hybrid_field_type directly from Item_func - Introducing a new class Type_handler which guarantees that field_type(), cmp_type() and result_type() are always properly synchronized and using the new class in Item_func_hybrid_field_type.
Diffstat (limited to 'libmysqld')
-rw-r--r--libmysqld/CMakeLists.txt1
1 files changed, 1 insertions, 0 deletions
diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt
index 5e0927395c2..84e1d5bd677 100644
--- a/libmysqld/CMakeLists.txt
+++ b/libmysqld/CMakeLists.txt
@@ -104,6 +104,7 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
../sql/sql_explain.cc ../sql/sql_explain.h
../sql/sql_analyze_stmt.cc ../sql/sql_analyze_stmt.h
../sql/compat56.cc
+ ../sql/sql_type.cc ../sql/sql_type.h
../sql/table_cache.cc ../sql/mf_iocache_encr.cc
../sql/item_inetfunc.cc
../sql/wsrep_dummy.cc ../sql/encryption.cc