PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment savoir quelle partition sera utilisée dans le partitionnement de hachage Postgres ?

Reverse engineering du code, vous pouvez obtenir le numéro de partition avec la déclaration suivante :

SELECT (hashtextextended('value', 8816678312871386365)::numeric + 5305509591434766563) % 8;

Remplacez 8 par le nombre de partitions et 'value' avec la chaîne en question.

Vous pouvez tester le numéro de partition avec satisfies_hash_partition . Pour tester si 'value' finirait dans la partition 6 sur 8 dans la table tab , vous pouvez courir

SELECT satisfies_hash_partition('tab'::regclass, 8, 6, 'value'::text);