Re: [sqlsmith] Failed assertion in create_gather_path
От | Amit Kapila |
---|---|
Тема | Re: [sqlsmith] Failed assertion in create_gather_path |
Дата | |
Msg-id | CAA4eK1J9QUjNUFfpj4y9MBqQwW3L-ZHVqV--Ea2HjDiEwVDvhw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [sqlsmith] Failed assertion in create_gather_path (Jeevan Chalke <jeevan.chalke@enterprisedb.com>) |
Ответы |
Re: [sqlsmith] Failed assertion in create_gather_path
Re: [sqlsmith] Failed assertion in create_gather_path |
Список | pgsql-hackers |
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 as we do in recurse_set_operations? 2. @@ -331,7 +331,7 @@ recurse_set_operations(Node *setOp, PlannerInfo *root, * to build a partial path for this relation. But there's no point in * considering any path but the cheapest. */ - if (final_rel->partial_pathlist != NIL) + if (final_rel->consider_parallel && final_rel->partial_pathlist != NIL) What problem did you see here or is it just for additional safety? Ideally, if the consider_parallel is false for a rel, it's partial path list should also be NULL. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: