• Sergei Petrunia's avatar
    MDEV-9750: Quick memory exhaustion with 'extended_keys=on' ... · 998560e2
    Sergei Petrunia authored
    (Variant #4, full patch)
    
    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.
    998560e2
opt_range.cc 528 KB