Сжатие дубликатов для B-tree [WIP]

При вставке одинаковых значений в B-tree индекс, в индекс попадут index tuples, отличающиеся только своим item pointer’ом. В GIN дубликаты обрабатываются куда более эффективно: каждый ключ хранится только один раз, а item pointer’ы накапливаются в posting list/tree. Если ещё учесть, что дубликаты могут в индексе возникать также из-за MVCC, то эффективное хранение дубликатов даёт очень большую экономию занимаемого места. Сейчас это преимущество можно оценить с помощью contrib модуля btree_gin. Задача состоит в том, чтобы реализовать для B-tree эффективное хранение дубликатов по аналогии с GIN.

Сделано