Hi Sergei, I addressed most of your suggestions. Except these ones: On 3/4/20 4:25 PM, Sergei Golubchik wrote:
--- a/plugin/type_inet/sql_type_inet.cc +++ b/plugin/type_inet/sql_type_inet.cc @@ -705,6 +705,11 @@ class Field_inet6: public Field str.set_ascii(name.ptr(), name.length()); }
+ bool extended_type_info_append_to(Extended_type_info *to) const override + { + return type_handler_inet6.extended_type_info_append_to(to); + } +
I don't like that it needs to be done _per plugin_
We should add Field_fixed_binary and move a number of Field_inet6 methods there, including this method. I propose I do it separately.
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 6df2b5dbd3a..949e389698a 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -6481,6 +6481,20 @@ Item *Item_cond_and::neg_transformer(THD *thd) /* NOT(a AND b AND ...) -> */ }
+bool +Item_cond_and::format_by_check_constraint_append_to(Extended_type_info *to) const +{ + List_iterator_fast<Item> li(const_cast<List<Item>&>(list));
Why the cast?
Same here. It's a separate problem. It needs reorganization in List_iterator_fast. I don't like the idea of adding a new List_iterator_fast constructor to with a cast inside. Also, please discuss with Georg the exact API of the new library functions. Thanks!