Rafal,
> >> 2. Where max_system_variables.ddl_wait_timeout is initialized?
> >
> > See line#3431 in mysqld.cc.
> >
>
> At this line I see:
>
> + global_system_variables.ddl_wait_timeout= 0;
> +
>
> but I'm asking about initialization for
> max_system_variables.ddl_wait_timeout.
Ok. Sorry. It's not being initialized. In fact, it isn't used at all. When
upper bounds are checked in sys_var_thd_ulong::update(), the code uses the
max value and not the u_max_value (max_system_variables.ddl_wait_timeout):
if ((ulong) tmp > max_system_variables.*offset)
...where offset is pointing to max_value.
This is the case with almost of the variables. See net_write_timeout. I
don't think this needs any additional changes as it is clearly not used.
> > You make a sound agrument and I see your point. However,
> this is one
> > where I think neither implementation is wrong and therefore I will
> > leave in THD. My only (remaining) reason to place it in THD
> is because
> > that's where the other timeout variables are defined and I
> personally
> > think that is where it should be. I don't like to rely on
> local copies
> > of variables -- it's just a practice of mine that is borne
> from past (bad) experiences.
> >
>
> Sorry but I must object here. I see no reason for the
> ddl_timeout structure to be a member of THD class. Given how
> huge and cumbersome that class is, I think we should add new
> members to it only when absolutely necessary. The fact that
> so many things are kept inside THD already indicates pure
> design of the code. With our patches we should increase
> quality of the code, not decrease it. Finally, I haven't
> found any other timespec structure inside THD class so I
> don't buy your argument that "that's where the other timeout
> variables are defined"
>
> I will not approve a patch which adds a member to THD without
> a reason.
I am sorry you feel that way. I must also strongly object to being held
hostage over what is simply an opinion and not technically relevant.
A new patch will be forthcoming which will include the above concession and
Peter's suggestion for the use of the ddl_wait_timeout values.
Chuck