On Tue, Dec 27, 2016 at 3:24 PM, Amit Langote <langote_amit...@lab.ntt.co.jp > wrote:
> On 2016/12/27 18:30, Rajkumar Raghuwanshi wrote: > > Hi Amit, > > > > I have pulled latest sources from git and tried to create multi-level > > partition, getting a server crash, below are steps to reproduce. please > > check if it is reproducible in your machine also. > > > > [ ... ] > > > postgres=# INSERT INTO test_ml SELECT i, i, to_char(i, 'FM0000') FROM > > generate_series(0, 599, 2) i; > > server closed the connection unexpectedly > > This probably means the server terminated abnormally > > before or while processing the request. > > The connection to the server was lost. Attempting reset: Failed. > > Thanks for the example. Looks like there was an oversight in my patch > that got committed as 2ac3ef7a01 [1]. > > Attached patch should fix the same. > > Thanks, > Amit > > [1] > https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h= > 2ac3ef7a01df859c62d0a02333b646d65eaec5ff > Hi Amit, I have applied attached patch, server crash for range is fixed, but still getting crash for multi-level list partitioning insert. postgres=# CREATE TABLE test_ml_l (a int, b int, c varchar) PARTITION BY LIST(c); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p1 PARTITION OF test_ml_l FOR VALUES IN ('0000', '0003', '0004', '0010') PARTITION BY LIST (c); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p1_p1 PARTITION OF test_ml_l_p1 FOR VALUES IN ('0000', '0003'); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p1_p2 PARTITION OF test_ml_l_p1 FOR VALUES IN ('0004', '0010'); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p2 PARTITION OF test_ml_l FOR VALUES IN ('0001', '0005', '0002', '0009') PARTITION BY LIST (c); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p2_p1 PARTITION OF test_ml_l_p2 FOR VALUES IN ('0001', '0005'); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p2_p2 PARTITION OF test_ml_l_p2 FOR VALUES IN ('0002', '0009'); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p3 PARTITION OF test_ml_l FOR VALUES IN ('0006', '0007', '0008', '0011') PARTITION BY LIST (ltrim(c,'A')); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p3_p1 PARTITION OF test_ml_l_p3 FOR VALUES IN ('0006', '0007'); CREATE TABLE postgres=# CREATE TABLE test_ml_l_p3_p2 PARTITION OF test_ml_l_p3 FOR VALUES IN ('0008', '0011'); CREATE TABLE postgres=# INSERT INTO test_ml_l SELECT i, i, to_char(i/50, 'FM0000') FROM generate_series(0, 599, 2) i; server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Failed. Thanks & Regards, Rajkumar Raghuwanshi QMG, EnterpriseDB Corporation