mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
bc43bff7ed
MySQL manual describes values of the YEAR(2) field type as follows: values 00 - 69 mean 2000 - 2069 years and values 70 - 99 mean 1970 - 1999 years. MIN/MAX and comparison functions was comparing them as int values thus producing wrong result. Now the Arg_comparator class is extended with compare_year function which performs correct comparison of the YEAR type. The Item_sum_hybrid class now uses Item_cache and Arg_comparator objects to correctly calculate its value. To allow Arg_comparator to use func_name() function for Item_func and Item_sum objects the func_name declaration is moved to the Item_result_field class. A helper function is_owner_equal_func is added to the Arg_comparator class. It checks whether the Arg_comparator object owner is the <=> function or not. A helper function setup is added to the Item_sum_hybrid class. It sets up cache item and comparator. mysql-test/r/func_group.result: Added a test case for the bug#43668. mysql-test/t/func_group.test: Added a test case for the bug#43668. sql/item.cc: Bug#43668: Wrong comparison and MIN/MAX for YEAR(2) Now Item_cache_int returns the type of cached item. sql/item.h: Bug#43668: Wrong comparison and MIN/MAX for YEAR(2) To allow Arg_comparator to use func_name() function for Item_func and Item_sum objects the func_name declaration is moved to the Item_result_field class. sql/item_cmpfunc.cc: Bug#43668: Wrong comparison and MIN/MAX for YEAR(2) The Arg_comparator class is extended with compare_year function which performs correct comparison of the YEAR type. sql/item_cmpfunc.h: Bug#43668: Wrong comparison and MIN/MAX for YEAR(2) The year_as_datetime variable is added to the Arg_comparator class. It's set to TRUE when YEAR value should be converted to the YYYY-00-00 00:00:00 format for correct YEAR-DATETIME comparison. sql/item_geofunc.cc: Bug#43668: Wrong comparison and MIN/MAX for YEAR(2) Item_func_spatial_rel::val_int chenged to use Arg_comparator's string buffers. sql/item_subselect.h: Bug#43668: Wrong comparison and MIN/MAX for YEAR(2) Added an implementation of the virtual func_name function. sql/item_sum.cc: Bug#43668: Wrong comparison and MIN/MAX for YEAR(2) The Item_sum_hybrid class now uses Item_cache and Arg_comparator objects to correctly calculate its value. A helper function setup is added to the Item_sum_hybrid class. It sets up cache item and comparator. sql/item_sum.h: Bug#43668: Wrong comparison and MIN/MAX for YEAR(2) The Item_sum_hybrid class now uses Item_cache and Arg_comparator objects to correctly calculate its value. Added an implementation of the virtual func_name function. |
||
---|---|---|
.. | ||
examples | ||
share | ||
.cvsignore | ||
add_errmsg | ||
authors.h | ||
client_settings.h | ||
CMakeLists.txt | ||
contributors.h | ||
custom_conf.h | ||
debug_sync.cc | ||
debug_sync.h | ||
derror.cc | ||
des_key_file.cc | ||
discover.cc | ||
event_data_objects.cc | ||
event_data_objects.h | ||
event_db_repository.cc | ||
event_db_repository.h | ||
event_parse_data.cc | ||
event_parse_data.h | ||
event_queue.cc | ||
event_queue.h | ||
event_scheduler.cc | ||
event_scheduler.h | ||
events.cc | ||
events.h | ||
field.cc | ||
field.h | ||
field_conv.cc | ||
filesort.cc | ||
frm_crypt.cc | ||
gen_lex_hash.cc | ||
gstream.cc | ||
gstream.h | ||
ha_ndbcluster.cc | ||
ha_ndbcluster.h | ||
ha_ndbcluster_binlog.cc | ||
ha_ndbcluster_binlog.h | ||
ha_ndbcluster_cond.cc | ||
ha_ndbcluster_cond.h | ||
ha_ndbcluster_tables.h | ||
ha_partition.cc | ||
ha_partition.h | ||
handler.cc | ||
handler.h | ||
hash_filo.cc | ||
hash_filo.h | ||
hostname.cc | ||
init.cc | ||
item.cc | ||
item.h | ||
item_buff.cc | ||
item_cmpfunc.cc | ||
item_cmpfunc.h | ||
item_create.cc | ||
item_create.h | ||
item_func.cc | ||
item_func.h | ||
item_geofunc.cc | ||
item_geofunc.h | ||
item_row.cc | ||
item_row.h | ||
item_strfunc.cc | ||
item_strfunc.h | ||
item_subselect.cc | ||
item_subselect.h | ||
item_sum.cc | ||
item_sum.h | ||
item_timefunc.cc | ||
item_timefunc.h | ||
item_xmlfunc.cc | ||
item_xmlfunc.h | ||
key.cc | ||
lex.h | ||
lex_symbol.h | ||
lock.cc | ||
log.cc | ||
log.h | ||
log_event.cc | ||
log_event.h | ||
log_event_old.cc | ||
log_event_old.h | ||
Makefile.am | ||
message.h | ||
message.mc | ||
message.rc | ||
mf_iocache.cc | ||
MSG00001.bin | ||
my_decimal.cc | ||
my_decimal.h | ||
my_lock.c | ||
mysql_priv.h | ||
mysql_priv.h.pp | ||
mysqld.cc | ||
mysqld_suffix.h | ||
net_serv.cc | ||
nt_servc.cc | ||
nt_servc.h | ||
opt_range.cc | ||
opt_range.h | ||
opt_sum.cc | ||
parse_file.cc | ||
parse_file.h | ||
partition_element.h | ||
partition_info.cc | ||
partition_info.h | ||
password.c | ||
procedure.cc | ||
procedure.h | ||
protocol.cc | ||
protocol.h | ||
records.cc | ||
repl_failsafe.cc | ||
repl_failsafe.h | ||
rpl_constants.h | ||
rpl_filter.cc | ||
rpl_filter.h | ||
rpl_injector.cc | ||
rpl_injector.h | ||
rpl_mi.cc | ||
rpl_mi.h | ||
rpl_record.cc | ||
rpl_record.h | ||
rpl_record_old.cc | ||
rpl_record_old.h | ||
rpl_reporting.cc | ||
rpl_reporting.h | ||
rpl_rli.cc | ||
rpl_rli.h | ||
rpl_tblmap.cc | ||
rpl_tblmap.h | ||
rpl_utility.cc | ||
rpl_utility.h | ||
scheduler.cc | ||
scheduler.h | ||
set_var.cc | ||
set_var.h | ||
slave.cc | ||
slave.h | ||
sp.cc | ||
sp.h | ||
sp_cache.cc | ||
sp_cache.h | ||
sp_head.cc | ||
sp_head.h | ||
sp_pcontext.cc | ||
sp_pcontext.h | ||
sp_rcontext.cc | ||
sp_rcontext.h | ||
spatial.cc | ||
spatial.h | ||
sql_acl.cc | ||
sql_acl.h | ||
sql_analyse.cc | ||
sql_analyse.h | ||
sql_array.h | ||
sql_base.cc | ||
sql_binlog.cc | ||
sql_bitmap.h | ||
sql_builtin.cc.in | ||
sql_cache.cc | ||
sql_cache.h | ||
sql_class.cc | ||
sql_class.h | ||
sql_client.cc | ||
sql_connect.cc | ||
sql_crypt.cc | ||
sql_crypt.h | ||
sql_cursor.cc | ||
sql_cursor.h | ||
sql_db.cc | ||
sql_delete.cc | ||
sql_derived.cc | ||
sql_do.cc | ||
sql_error.cc | ||
sql_error.h | ||
sql_handler.cc | ||
sql_help.cc | ||
sql_insert.cc | ||
sql_lex.cc | ||
sql_lex.h | ||
sql_list.cc | ||
sql_list.h | ||
sql_load.cc | ||
sql_locale.cc | ||
sql_manager.cc | ||
sql_map.cc | ||
sql_map.h | ||
sql_olap.cc | ||
sql_parse.cc | ||
sql_partition.cc | ||
sql_partition.h | ||
sql_plugin.cc | ||
sql_plugin.h | ||
sql_prepare.cc | ||
sql_profile.cc | ||
sql_profile.h | ||
sql_rename.cc | ||
sql_repl.cc | ||
sql_repl.h | ||
sql_select.cc | ||
sql_select.h | ||
sql_servers.cc | ||
sql_servers.h | ||
sql_show.cc | ||
sql_show.h | ||
sql_sort.h | ||
sql_state.c | ||
sql_string.cc | ||
sql_string.h | ||
sql_table.cc | ||
sql_tablespace.cc | ||
sql_test.cc | ||
sql_trigger.cc | ||
sql_trigger.h | ||
sql_udf.cc | ||
sql_udf.h | ||
sql_union.cc | ||
sql_update.cc | ||
sql_view.cc | ||
sql_view.h | ||
sql_yacc.yy | ||
strfunc.cc | ||
structs.h | ||
table.cc | ||
table.h | ||
thr_malloc.cc | ||
time.cc | ||
tzfile.h | ||
tztime.cc | ||
tztime.h | ||
udf_example.c | ||
udf_example.def | ||
uniques.cc | ||
unireg.cc | ||
unireg.h |