maria-developers team mailing list archive
Mailing list archive
Re: MDEV-28881 Server crashes in Dep_analysis_context::create_table_value
> commit 812f8cbfb3a7a02705f65d8bb7e30ae2faf13b5d
> Author: Oleg Smirnov <olernov@xxxxxxxxx>
> Date: Tue Jun 21 16:20:17 2022 +0700
> MDEV-28881 Server crashes in Dep_analysis_context::create_table_value
> SELECT_LEX::first_select()->join may be NULL for some scenarios.
> This commit adds a check for this.
Looking into Jira I can infer that the patch fixes two issues, but the commit
comment doesn't say that. Please avoid doing this in the future.
Please split the commit into two:
- first one fixing the SELECT_LEX::first_select()->join == NULL part
- the second fixing the memory management.
For the second part, I think it's not a good approach when most of the Table
Elimination data resides in a MEM_ROOT with exception of std::set which keeps
its data on the heap.
I was wondering if there's a way to get STL containers to reside on MEM_ROOT
as well, and found that yes there is, and MySQL actually already has it:
Can we copy mem_root_allocator.h from them (in a separate commit) and then
fix memory management here by making std::set use it?
Sergei Petrunia, Software Developer
MariaDB Corporation | Skype: sergefp | Blog: http://petrunia.net