• Sergei Petrunia's avatar
    MDEV-9750: Quick memory exhaustion with 'extended_keys=on' ... · c3672038
    Sergei Petrunia authored
    (Variant #5, full patch, for 10.5)
    
    Do not produce SEL_ARG graphs that would yield huge numbers of ranges.
    Introduce a concept of SEL_ARG graph's "weight". If we are about to
    produce a graph whose "weight" exceeds the limit, remove the parts
    of SEL_ARG graph that represent the biggest key parts. Do so until
    the graph's is within the limit.
    
    Includes
    - debug code to verify SEL_ARG graph weight
    - A user-visible @@optimizer_max_sel_arg_weight to control the optimization
    - Logging the optimization into the optimizer trace.
    c3672038
sys_vars.cc 264 KB