maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #12566
Re: MDEV-17399: JSON_TABLE: Odd code in table.cc:create_view_field ?
Well i should have removed those changes after i did the last version
of the check for table dependencies. Now we never set the
thd->current_select to the 0.
So that part wrapper_to_set part deleted.
Best regards.
HF
On Fri, Mar 12, 2021 at 1:35 AM Sergey Petrunia <sergey@xxxxxxxxxxx> wrote:
> Hi Alexey,
>
> What does the code quoted below do? I don't recall seeing it on previous
> review
> iterations.
>
> In any case,
> * It needs a comment about why such special handling is needed.
> * It needs test coverage - I have reverted these changes and didn't see
> any test to fail?
>
> > diff --git a/sql/table.cc b/sql/table.cc
> > index 4f65dbd65f4..9c205fc4be6 100644
> > --- a/sql/table.cc
> > +++ b/sql/table.cc
> > @@ -6722,6 +6722,8 @@ Item *create_view_field(THD *thd, TABLE_LIST
> *view, Item **field_ref,
> > LEX_CSTRING *name)
> > {
> > bool save_wrapper= thd->lex->first_select_lex()->no_wrap_view_item;
> > + bool *wrapper_to_set= thd->lex->current_select ?
> > + &thd->lex->current_select->no_wrap_view_item : &save_wrapper;
> > Item *field= *field_ref;
> > DBUG_ENTER("create_view_field");
> >
> > @@ -6737,17 +6739,17 @@ Item *create_view_field(THD *thd, TABLE_LIST
> *view, Item **field_ref,
> > }
> >
> > DBUG_ASSERT(field);
> > - thd->lex->current_select->no_wrap_view_item= TRUE;
> > + *wrapper_to_set= TRUE;
> > if (!field->is_fixed())
> > {
> > if (field->fix_fields(thd, field_ref))
> > {
> > - thd->lex->current_select->no_wrap_view_item= save_wrapper;
> > + *wrapper_to_set= save_wrapper;
> > DBUG_RETURN(0);
> > }
> > field= *field_ref;
> > }
> > - thd->lex->current_select->no_wrap_view_item= save_wrapper;
> > + *wrapper_to_set= save_wrapper;
> > if (save_wrapper)
> > {
> > DBUG_RETURN(field);
>
>
> BR
> Sergei
> --
> Sergei Petrunia, Software Developer
> MariaDB Corporation | Skype: sergefp | Blog: http://petrunia.net
>
>
>
References