Commit 60fbb4d7 authored by Tomas Vondra's avatar Tomas Vondra

Simplify cost_incremental_sort a bit

Commit de0dc1a8 added code to cost_incremental_sort to handle varno 0.
Explicitly removing the RelabelType is not really necessary, because the
pull_varnos handles that just fine, which simplifies the code a bit.

Author: Richard Guo
Discussion: https://postgr.es/m/CAMbWs4_3_D2J5XxOuw68hvn0-gJsw9FXNSGcZka9aTymn9UJ8A%40mail.gmail.com
Discussion: https://postgr.es/m/20200411214639.GK2228%40telsasoft.com
parent 2e08d314
......@@ -1842,9 +1842,6 @@ cost_incremental_sort(Path *path,
*/
foreach(l, pathkeys)
{
Node *expr;
Relids varnos;
PathKey *key = (PathKey *) lfirst(l);
EquivalenceMember *member = (EquivalenceMember *)
linitial(key->pk_eclass->ec_members);
......@@ -1853,14 +1850,7 @@ cost_incremental_sort(Path *path,
* Check if the expression contains Var with "varno 0" so that we
* don't call estimate_num_groups in that case.
*/
expr = (Node *) member->em_expr;
if (IsA(expr, RelabelType))
expr = (Node *) ((RelabelType *) expr)->arg;
varnos = pull_varnos(expr);
if (bms_is_member(0, varnos))
if (bms_is_member(0, pull_varnos((Node *) member->em_expr)))
{
unknown_varno = true;
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment