Hello!

On Wed, 24 May 2023 at 18:32, Sergei Golubchik <s...@mariadb.org> wrote:

> > @@ -7750,6 +7750,8 @@ ha_innobase::write_row(
> >
> >       DBUG_ENTER("ha_innobase::write_row");
> >
> > +     DBUG_ASSERT(is_root_handler() || table->file->ht !=
> innodb_hton_ptr);
>
> instead of putting this assert into every handler's implementation
> and in many methods, why not to have it in handler ha_ methods or may be
> even in the is_root_handler itself?


We can only put this assertion to a leaf handler. The assertion itself
means:
"A it's a leaf handler, then it's either a root handler as well, or a root
hton is different".


> You can compare this->ht with
> table->file->ht. For example, like
>
>   DBUG_ASSERT(this == table->file || this->ht != table->file->ht);
>

This'll mean that there can't be more than two layers of handlers.

I suspect I'm able to move the assertion to a more generic place, like
is_root_handler,
but I'd have to check whether a handler's hton is a "certainly leaf" one by
comparing
it with ha_resolve_by_name outputs for "myisam" and "innodb".

-- 
Yours truly,
Nikita Malyavin
_______________________________________________
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