To jest dobre pytanie. Obecnie Citus nie zapewnia bezpośredniego sposobu zmiany typu partycji istniejących danych.
W partycjonowaniu zakresu rekordy są umieszczane we fragmentach zgodnie z ich wartością kolumny partycji i wartościami min/max fragmentu. Jeśli rekord x znajduje się we fragmencie y, oznacza to y.minvalue <= x.partition_column <= y.maxvalue
.
W partycjonowaniu mieszającym kolumna partycji jest zaszyfrowana, a rekordy są kierowane zgodnie z tą zaszyfrowaną wartością. Dlatego wartości min/maks, które widzisz w pg_dist_shard
są wartościami granicznymi wyniku funkcji skrótu. W tym przypadku y.minvalue <= hash(x.partition_column) <= y.maxvalue
.
W związku z tym wprowadzenie zmian, o których wspomniałeś, zakończyłoby się niepoprawną dystrybucją. Aby przełączyć się z partycji zakresu na partycję mieszającą, dane powinny zostać ponownie rozprowadzone. Aby to zrobić, sugeruję przeładowanie danych do pustej tabeli podzielonej na partycje haszowe.
Więcej informacji znajdziesz w Praca z tabelami rozproszonymi i Dystrybucja haszu sekcje dokumentacji Citus.