mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
f436b4a523
During the 10.5->10.6 merge please use the 10.6 code on conflicts. This is the 10.5 version of the patch (a backport of the 10.6 version). Unlike 10.6 version, it makes changes in plugin/type_inet/sql_type_inet.* rather than in sql/sql_type_fixedbin.h Item_bool_rowready_func2, Item_func_between, Item_func_in did not check if a not-NULL argument of an arbitrary data type can produce a NULL value on conversion to INET6. This caused a crash on DBUG_ASSERT() in conversion failures, because the function returned SQL NULL for something that has Item::maybe_null() equal to false. Adding setting NULL-ability in such cases. Details: - Removing the code in Item_func::setup_args_and_comparator() performing character set aggregation with optional narrowing. This aggregation is done inside Arg_comparator::set_cmp_func_string(). So this code was redundant - Removing Item_func::setup_args_and_comparator() as it git simplified to just to two lines: convert_const_compared_to_int_field(thd); return cmp->set_cmp_func(thd, this, &args[0], &args[1], true); Using these lines directly in: - Item_bool_rowready_func2::fix_length_and_dec() - Item_func_nullif::fix_length_and_dec() - Adding a new virtual method: - Type_handler::Item_bool_rowready_func2_fix_length_and_dec(). - Adding tests detecting if the data type conversion can return SQL NULL into the following methods of Type_handler_inet6: - Item_bool_rowready_func2_fix_length_and_dec - Item_func_between_fix_length_and_dec - Item_func_in_fix_comparator_compatible_types |
||
---|---|---|
.. | ||
audit_null | ||
auth_dialog | ||
auth_ed25519 | ||
auth_examples | ||
auth_gssapi | ||
auth_pam | ||
auth_pipe | ||
auth_socket | ||
aws_key_management | ||
cracklib_password_check | ||
daemon_example | ||
debug_key_management | ||
disks | ||
example_key_management | ||
feedback | ||
file_key_management | ||
fulltext | ||
func_test | ||
handler_socket | ||
locale_info | ||
metadata_lock_info | ||
qc_info | ||
query_response_time | ||
server_audit | ||
simple_password_check | ||
sql_errlog | ||
test_sql_service | ||
type_geom | ||
type_inet | ||
type_mysql_json | ||
type_test | ||
user_variables | ||
userstat | ||
versioning | ||
win_auth_client | ||
wsrep_info |