PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come sapere quale partizione verrà utilizzata nel partizionamento hash di Postgres?

Reverse engineering del codice, puoi ottenere il numero di partizione con la seguente istruzione:

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

Sostituisci 8 con il numero di partizioni e 'value' con la stringa in questione.

Puoi testare il numero di partizione con satisfies_hash_partition . Per verificare se 'value' finirebbe nella partizione 6 di 8 nella tabella tab , puoi correre

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