Det är en bra fråga. För närvarande erbjuder Citus inte ett direkt sätt att ändra partitionstyp för befintliga data.
Vid intervallpartitionering placeras poster i shards enligt deras partitionskolumnvärde och shard min/max-värden. Om en post x finns i skärva y betyder det y.minvalue <= x.partition_column <= y.maxvalue
.
I hashpartitionering hashas partitionskolumnen och poster dirigeras enligt detta hashade värde. Därför ser du min/max-värden i pg_dist_shard
är gränsvärdena för resultatet av hashfunktionen. I det här fallet y.minvalue <= hash(x.partition_column) <= y.maxvalue
.
Att göra de ändringar du har nämnt skulle därför sluta med en felaktig fördelning. För att växla från intervallpartition till hashpartition bör data omdistribueras. För att göra det föreslår jag att du laddar om data till en tom hash-partitionerad tabell.
För mer information kan du se Arbeta med distribuerade tabeller och Hashdistribution avsnitt av Citus Documentation.