← Back to team overview

maria-developers team mailing list archive

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