| From: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at> |
|---|---|
| To: | Srinivasa T N <seenutn(at)gmail(dot)com> |
| Cc: | David Rowley <dgrowleyml(at)gmail(dot)com>, PostgreSQL General <pgsql-general(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: HASH partitioning not working properly |
| Date: | 2020-06-19 13:43:40 |
| Message-ID: | 219b96f22844aa5408285ef7d4a049af56fb7915.camel@cybertec.at |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Fri, 2020-06-19 at 13:27 +0530, Srinivasa T N wrote:
> > > How can I see the output of hash function that is used internally?
> >
> > In the case of "integer", the hash function is "pg_catalog"."hashint4".
>
> I guess output formatting is wrong, any help?
>
> postgres=# select pg_catalog.hashint4(7);
> hashint4
> ------------
> -978793473
> (1 row)
No, that is fine.
Just take the result mod 10 if that is how hash partitioning was defined:
select pg_catalog.hashint4(7) - floor(pg_catalog.hashint4(7) / 10.0) * 10;
?column?
----------
7
(1 row)
So that should end up in the eighth partition.
You have no choice which hash function to use for partitioning.
Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Laurenz Albe | 2020-06-19 13:44:44 | Re: Conflict with recovery on PG version 11.6 |
| Previous Message | Adrian Klaver | 2020-06-19 13:19:14 | Re: create batch script to import into postgres tables |