maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #12959
Re: d1ec0231553: MDEV-26732 Assertion `0' failed in Item::val_native
Hi, Alexander!
On Oct 25, Alexander Barkov wrote:
> >>
> >> MDEV-26732 Assertion `0' failed in Item::val_native
> >>
> >> Also fixes MDEV-24619 Wrong result or Assertion `0' in Item::val_native / Type_handler_inet6::Item_val_native_with_conversion
> >
> > would be good to have some explanation here, what was wrong, what was
> > the fix.
>
> Right, I suggest this comment:
>
>
> MDEV-26732 Assertion `0' failed in Item::val_native
>
> Also fixes MDEV-24619 Wrong result or Assertion `0' in
> Item::val_native / Type_handler_inet6::Item_val_native_with_conversion
>
> Type_handler::create_item_copy() created a generic Item_copy_string,
> which does not implement val_native() - it has a dummy implementation
> with DBUG_ASSERT(0), which made the server crash.
Why does it call val_native() if Item_copy_string doesn't implement it?
If the item was a string in the first place, that is, if
Item_copy_string would've been used correctly where it should've been
used, then val_native() wouldn't be called? What would it use,
val_str()?
So why does it use val_native() here, because that
Item_copy_string uses Type_handler_inet6?
> Fix:
>
> - Adding a new class Item_copy_inet6, which implements val_native().
> - Fixing Type_handler::create_item_copy() to make Item_copy_inet6
> instead of Item_copy_string.
>
Regards,
Sergei
VP of MariaDB Server Engineering
and security@xxxxxxxxxxx
Follow ups
References