```
SELECT *
FROM system.dictionaries
WHERE name LIKE 'XXXX%'

Row 1:
──────
database:                    default
name:                        XXXX_dict
uuid:                        00000000-0000-0000-0000-000000000000
status:                      LOADED
origin:                      default.XXXX_dict
type:                        Polygon
key:                         (Array(Array(Array(Array(Float64)))))
attribute.names:             ['name','id']
attribute.types:             ['String','String']
bytes_allocated:             0
query_count:                 0
hit_rate:                    1
element_count:               433731
load_factor:                 1
source:                      ClickHouse: default.XXXX
lifetime_min:                60
lifetime_max:                1800
loading_start_time:          2021-03-11 00:07:52
last_successful_update_time: 2021-03-11 00:08:24
loading_duration:            31.595
last_exception:
```
}
    }
    for (size_t i = 0; i != all_edges.size(); i++)
    {
        size_t l = edge_left[i];
        size_t r = edge_right[i];
        if (l == n || sorted_x[l] != all_edges[i].l.x() || sorted_x[r] != all_edges[i].r.x())
        {
            throw Exception(ErrorCodes::LOGICAL_ERROR,
                "Error occurred while building polygon index. Edge {}  is [{}, {}] but found [{}, {}]. l = {}, r = {}",
                i, all_edges[i].l.x(), all_edges[i].r.x(), sorted_x[l], sorted_x[r], l, r);
        }
        
        for (l += n, r += n; l < r; l >>= 1, r >>= 1)
        {
            if (l & 1)
            {
                edges_index_tree[l++].emplace_back(all_edges[i]);
                ++total_index_edges;
            }
            if (r & 1)
            {
                edges_index_tree[--r].emplace_back(all_edges[i]);
                ++total_index_edges;
            }
        }
    }
    LOG_TRACE(log, "Polygon index is built, total_index_edges = {}", total_index_edges);
}
void SlabsPolygonIndex::indexAddRing(const Ring & ring, size_t polygon_id)