Re: [sqlsmith] Failed assertion in create_gather_path

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Jeevan Chalke <jeevan.chalke@enterprisedb.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Andreas Seltenreich <seltenreich@gmx.de>, Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@alvh.no-ip.org>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-04-09T12:23:49Z
Lists: pgsql-hackers
On Mon, Apr 9, 2018 at 5:52 PM, Amit Kapila <amit.kapila16@gmail.com> wrote:
> On Sun, Apr 8, 2018 at 1:04 PM, Jeevan Chalke
> <jeevan.chalke@enterprisedb.com> wrote:
>> Hi,
>>
>> At some places, I have observed that we are adding a partial path even when
>> rel's consider_parallel is false. Due to this, the partial path added has
>> parallel_safe set to false and then later in create_gather_path() assertion
>> fails.
>>
>
> Few Comments:
> 1.
> @@ -2196,6 +2196,10 @@ set_subquery_pathlist(PlannerInfo *root, RelOptInfo *rel,
>     pathkeys, required_outer));
>   }
>
> + /* If parallelism is not possible, return. */
> + if (!rel->consider_parallel || !bms_is_empty(required_outer))
> + return;
>
> In this case shouldn't we set the rel's consider_parallel flag
> correctly rather than avoiding adding the path to it
>

In the above sentence, I mean to say *partial* path.

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


Commits

  1. Prevent generation of bogus subquery scan paths.

  2. Let Parallel Append over simple UNION ALL have partial subpaths.