Hi, Alexander!

On Oct 12, Alexander Barkov wrote:
> >> diff --git a/sql/field.cc b/sql/field.cc
> >> index 46a3a1deea3..fc3456e2ccb 100644
> >> --- a/sql/field.cc
> >> +++ b/sql/field.cc
> >> @@ -7368,7 +7368,9 @@ bool
> >>   Field_longstr::cmp_to_string_with_same_collation(const Item_bool_func 
> >> *cond,
> >>                                                    const Item *item) const
> >>   {
> >> +  Type_handler_hybrid_field_type cmp(type_handler_for_comparison());
> > 
> > Can this be anything else but type_handler_long_blob ?
> > if not, then I'd suggest
> > 
> >     Type_handler_hybrid_field_type cmp(type_handler_long_blob);
> >     DBUG_ASSERT(type_handler_for_comparison() == &type_handler_long_blob);
> 
> Generally we don't know. It's now for every single plugin to decide.
> One can make a plugin using Field_longstr as a base for its Field,
> but with a different comparison type handler.
> 
> I wrote it in a generic way which should work for all cases.

Yes, I know. But practically we won't have such plugins for quite a
while, so I'd rather prefer a shorter execution path and a faster code.
And an assert that will remind us to implement your gneralized approach
when the assumption will be broken.

> > One more question. What type do we have where you need to aggregate here
> > and simple
> > 
> >     item->type_handler_for_comparison() != &type_handler_long_blob
> > 
> > won't do?
> 
> We don't know. It's for a plugin to decide if its data type
> is stronger of weaker than CHAR/VARCHAR/TEXT.
> For INET6 and UUID we decided they are stronger.
> But eventually we may want to add some weaker data type.

Same here.

Regards,
Sergei
VP of MariaDB Server Engineering
and secur...@mariadb.org

_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to