• Alex Kalderimis's avatar
    Move nulls safely even when there is not enough space · 0e764076
    Alex Kalderimis authored
    This is motivated by errors such as
    https://sentry.gitlab.net/gitlab/gitlabcom/issues/1766076, where
    attempts to move nulls fail even with rebalancing due to the fact that
    the gap found is not big enough for all the nulls.
    
    We address this in two ways:
    
    - we try to consolidate multiple gaps. Up to 10 gaps will be found and
    consolidated to make enough room. This is expected to be effective in
    most cases.
    
    - if we still cannot make enough space, rather than failing, we stack
    all overflow elements at the edge. So if we need to move 10 nulls to the
    end, and we only have space for 5, all the extras (5 of them) will be
    placed at the maximum position.
    
    Adds a changelog entry since this is a bug-fix
    0e764076
relative_positioning.rb 16.8 KB