`SELECT ... WHERE match(key, '^prefix...')`
should use index similarly to
`SELECT ... WHERE key LIKE 'prefix%'`
hyperrectangle[prefix_size] = Range::createRightBounded(right_keys[prefix_size], false);
    for (size_t i = prefix_size + 1; i < key_size; ++i)
        hyperrectangle[i] = Range();
    BoolMask result = initial_mask;
    result = result | callback(hyperrectangle);
    
    
    
    
    if (result.isComplete())
        return result;
    
    if (left_bounded)
    {
        hyperrectangle[prefix_size] = Range(left_keys[prefix_size]);
        result = result | forAnyHyperrectangle(key_size, left_keys, right_keys, true, false, hyperrectangle, prefix_size + 1, initial_mask, callback);
        if (result.isComplete())
            return result;
    }
    
    if (right_bounded)
    {
        hyperrectangle[prefix_size] = Range(right_keys[prefix_size]);
        result = result | forAnyHyperrectangle(key_size, left_keys, right_keys, false, true, hyperrectangle, prefix_size + 1, initial_mask, callback);
        if (result.isComplete())
            return result;
    }
    return result;
}
BoolMask KeyCondition::checkInRange(