diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-01-18 19:46:52 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-01-18 22:21:19 +0200 |
commit | 96c49808bd64e2dd45c24e8746b32b96c37da98a (patch) | |
tree | 90b646ce116d94a6c0fa71382598e79f522c763c /sql/item_cmpfunc.cc | |
parent | a1315a650a69745bac7166cfe1423215dfaac6e1 (diff) | |
parent | f7d030489d2980c9deb733925515099ec256f6d2 (diff) | |
download | mariadb-git-10.2-merge.tar.gz |
WIP merge 10.1 to 10.210.2-merge
Bootstrap fails:
mysqld: sql/field.h:957: bool Field::has_explicit_value(): Assertion `table->has_value_set' failed.
assertion=0x1411e89 "table->has_value_set",
file=0x1411e9e "/home/marko/mariadb/server/sql/field.h", line=957,
function=0x1411ec5 "bool Field::has_explicit_value()") at assert.c:101
at /home/marko/mariadb/server/sql/field.h:957
table_list=0x7fff7407b4f0, fields=..., values_list=...,
update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false)
at /home/marko/mariadb/server/sql/sql_insert.cc:1017
at /home/marko/mariadb/server/sql/sql_parse.cc:4370
rawbuf=0x7fff740f43e0 " INSERT INTO global_suppressions VALUES (\".SELECT UNIX_TIMESTAMP... failed on master\"), (\"Aborted connection\"), (\"Client requested master to start replication from impossible position\"), (\"Could"..., length=6339, parser_state=0x7fffe8efcab8, is_com_multi=false,
is_next_command=false) at /home/marko/mariadb/server/sql/sql_parse.cc:7839
at /home/marko/mariadb/server/sql/sql_parse.cc:1033
There are unresolved conflicts in the following files:
mysql-test/suite/galera/r/galera_var_cluster_address.result
mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result
mysql-test/suite/innodb/r/innodb-wl5522-debug.result
mysql-test/suite/innodb/r/innodb_bug14147491.result
mysql-test/suite/innodb/r/xa_recovery.result
mysql-test/suite/innodb/t/doublewrite.test
mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test
mysql-test/suite/innodb/t/innodb-wl5522-debug.test
mysql-test/suite/innodb/t/innodb_bug14147491.test
mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
mysql-test/suite/sys_vars/r/sysvars_innodb.result
mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff
mysql-test/suite/sys_vars/r/sysvars_server_notembedded,32bit.rdiff
mysql-test/suite/vcol/inc/vcol_trigger_sp.inc
mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result
mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r-- | sql/item_cmpfunc.cc | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 2856cea0697..a3b9041aed4 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -610,7 +610,7 @@ int Arg_comparator::set_compare_func(Item_func_or_sum *item, Item_result type) int Arg_comparator::set_cmp_func(Item_func_or_sum *owner_arg, Item **a1, Item **a2) { - thd= current_thd; + THD *thd= current_thd; owner= owner_arg; set_null= set_null && owner_arg; a= a1; @@ -742,12 +742,10 @@ get_datetime_value(THD *thd, Item ***item_arg, Item **cache_arg, if (cache_arg && item->const_item() && !(item->type() == Item::CACHE_ITEM && item->cmp_type() == TIME_RESULT)) { - Query_arena backup; - Query_arena *save_arena= thd->switch_to_arena_for_cached_items(&backup); - Item_cache_temporal *cache= new (thd->mem_root) Item_cache_temporal(thd, f_type); - if (save_arena) - thd->set_query_arena(save_arena); + if (!thd) + thd= current_thd; + Item_cache_temporal *cache= new (thd->mem_root) Item_cache_temporal(thd, f_type); cache->store_packed(value, item); *cache_arg= cache; *item_arg= cache_arg; @@ -782,12 +780,12 @@ int Arg_comparator::compare_temporal(enum_field_types type) owner->null_value= 1; /* Get DATE/DATETIME/TIME value of the 'a' item. */ - a_value= get_datetime_value(thd, &a, &a_cache, type, &a_is_null); + a_value= get_datetime_value(0, &a, &a_cache, type, &a_is_null); if (a_is_null) return -1; /* Get DATE/DATETIME/TIME value of the 'b' item. */ - b_value= get_datetime_value(thd, &b, &b_cache, type, &b_is_null); + b_value= get_datetime_value(0, &b, &b_cache, type, &b_is_null); if (b_is_null) return -1; @@ -805,10 +803,10 @@ int Arg_comparator::compare_e_temporal(enum_field_types type) longlong a_value, b_value; /* Get DATE/DATETIME/TIME value of the 'a' item. */ - a_value= get_datetime_value(thd, &a, &a_cache, type, &a_is_null); + a_value= get_datetime_value(0, &a, &a_cache, type, &a_is_null); /* Get DATE/DATETIME/TIME value of the 'b' item. */ - b_value= get_datetime_value(thd, &b, &b_cache, type, &b_is_null); + b_value= get_datetime_value(0, &b, &b_cache, type, &b_is_null); return a_is_null || b_is_null ? a_is_null == b_is_null : a_value == b_value; } @@ -3742,7 +3740,7 @@ uchar *in_datetime::get_value(Item *item) Item **tmp_item= lval_cache ? &lval_cache : &item; enum_field_types f_type= tmp_item[0]->field_type_for_temporal_comparison(warn_item); - tmp.val= get_datetime_value(thd, &tmp_item, &lval_cache, f_type, &is_null); + tmp.val= get_datetime_value(0, &tmp_item, &lval_cache, f_type, &is_null); if (item->null_value) return 0; tmp.unsigned_flag= 1L; @@ -4007,7 +4005,7 @@ void cmp_item_datetime::store_value(Item *item) Item **tmp_item= lval_cache ? &lval_cache : &item; enum_field_types f_type= tmp_item[0]->field_type_for_temporal_comparison(warn_item); - value= get_datetime_value(thd, &tmp_item, &lval_cache, f_type, &is_null); + value= get_datetime_value(0, &tmp_item, &lval_cache, f_type, &is_null); m_null_value= item->null_value; } |