Rajkumar Raghuwanshi <rajkumar.raghuwan...@enterprisedb.com> writes:
> I am getting a server crash for below test case.

> postgres=# CREATE TABLE test( c1 int, c2 int, c3 text) partition by
> range(c1);
> CREATE TABLE
> postgres=# create table test_p1 partition of test for values from
> (minvalue) to (0);
> CREATE TABLE
> postgres=# create table test_p2 partition of test for values from (0) to
> (maxvalue);
> CREATE TABLE
> postgres=#
> postgres=# select (select max((select t1.c2 from test t1 where t1.c1 =
> t2.c1))) from test t2;
> server closed the connection unexpectedly

Reproduced here.  The assert seems to be happening because
add_paths_to_append_rel is trying to create a parallel path for
an appendrel that is marked consider_parallel = false.

This appears to be the fault of commit ab7271677, whose authors I've cc'd:
the stanza starting at about allpaths.c:1672 is bullheadedly creating a
parallel path whether that's allowed or not.  Fixing it might be as simple
as adding "rel->consider_parallel" to the conditions there.

                        regards, tom lane

Reply via email to