Обсуждение: BUG #15357: Data goes to wrong partition in HASH Partitioned table

Поиск
Список
Период
Сортировка

BUG #15357: Data goes to wrong partition in HASH Partitioned table

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      15357
Logged by:          Jobin Augustine
Email address:      jobin.augustine@percona.com
PostgreSQL version: 11beta3
Operating system:   Linux (CentOS 7.4 64 bit)
Description:

Steps to reproduce
=============
Step 1. Create a hash partitioned table
postgres=# CREATE TABLE hash_parted (
postgres(# a int
postgres(# ) PARTITION BY HASH (a);
CREATE TABLE

Step 2. Create a partition which accpets rows with remainder 0 after a
modulus operation
postgres=# CREATE TABLE hpart_1 PARTITION OF hash_parted FOR VALUES WITH
(MODULUS 10, REMAINDER 0);
CREATE TABLE

Step 3. Try inserting a row which will have remainder 0 after modulus
operation
postgres=# insert into hash_parted values (10);
ERROR:  no partition of relation "hash_parted" found for row
DETAIL:  Partition key of the failing row contains (a) = (10).

FAILED!

Step 4. Create a partition which accepts the remainder 9 after modulo
operation
postgres=# CREATE TABLE hpart_10 PARTITION OF hash_parted FOR VALUES WITH
(MODULUS 10, REMAINDER 9);
CREATE TABLE

Step 5. Try inserting a value 10
postgres=# insert into hash_parted values (10);
INSERT 0 1
 
Data gets inserted into a partition which is supposed to accept reminder 9
after modulo operation.


Re: BUG #15357: Data goes to wrong partition in HASH Partitionedtable

От
Alvaro Herrera
Дата:
On 2018-Aug-28, PG Bug reporting form wrote:

> Step 3. Try inserting a row which will have remainder 0 after modulus
> operation
> postgres=# insert into hash_parted values (10);
> ERROR:  no partition of relation "hash_parted" found for row
> DETAIL:  Partition key of the failing row contains (a) = (10).
> 
> FAILED!

The hash function for integers does not return the input integer,
therefore the modulus is not that of the integer value.  This is not a
bug.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services