Hi, Sergei! On Mon, Dec 6, 2021 at 11:22 PM Sergei Golubchik <s...@mariadb.org> wrote: > > Hi, Aleksey! > > On Dec 05, Aleksey Midenkov wrote: > > > > diff --git a/sql/sql_base.cc b/sql/sql_base.cc > > > > index ac22a63bdba..459edb614f7 100644 > > > > --- a/sql/sql_base.cc > > > > +++ b/sql/sql_base.cc > > > > @@ -4203,6 +4444,15 @@ bool open_tables(THD *thd, const DDL_options_st > > > > &options, > > > > } > > > > > > > > thd->current_tablenr= 0; > > > > + > > > > +#ifdef WITH_PARTITION_STORAGE_ENGINE > > > > + if (!thd->stmt_arena->is_conventional()) > > > > + { > > > > + for (tables= *start; tables; tables= tables->next_global) > > > > + tables->vers_skip_create= false; > > > > + } > > > > > > This looks a bit like an overkill, you do it for every prepare, > > > while auto-adding a partition is a rare event, as you said. > > > > > > May be you can do instead in TABLE::vers_switch_partition > > > > > > uint *create_count= !thd->stmt_arena->is_conventional() && > > > table_list->vers_skip_create ? > > > > No, this is inside backoff action loop. That will interfere with the > > normal vers_skip_create algorithm (which also applies to PS, SP). The > > goal of the above code is to reset vers_skip_create from the previous > > statement execution. > > In that case you can use an auto-resetting value, like, > if tables->vers_skip_create == thd->query_id it means, "skip". > That is vers_skip_create must be of query_id_t. You set it with > tables->vers_skip_create= thd->query_id; > And on the next statement it automatically expires. > > This semantics is a bit more complex than boolean, so it'd need a > comment, like > > /* > Protect single thread from repeating partition auto-create over > multiple share instances (as the share is closed on backoff action). > Skips auto-create only for one given query id. > */ > query_id_t vers_skip_create;
Done! Thanks for the tip. > > Regards, > Sergei > VP of MariaDB Server Engineering > and secur...@mariadb.org -- @midenok _______________________________________________ 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