Simplify cost_incremental_sort a bit
Commit de0dc1a847 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
This commit is contained in:
parent
2e08d314ed
commit
60fbb4d762
@ -1842,9 +1842,6 @@ cost_incremental_sort(Path *path,
|
|||||||
*/
|
*/
|
||||||
foreach(l, pathkeys)
|
foreach(l, pathkeys)
|
||||||
{
|
{
|
||||||
Node *expr;
|
|
||||||
Relids varnos;
|
|
||||||
|
|
||||||
PathKey *key = (PathKey *) lfirst(l);
|
PathKey *key = (PathKey *) lfirst(l);
|
||||||
EquivalenceMember *member = (EquivalenceMember *)
|
EquivalenceMember *member = (EquivalenceMember *)
|
||||||
linitial(key->pk_eclass->ec_members);
|
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
|
* Check if the expression contains Var with "varno 0" so that we
|
||||||
* don't call estimate_num_groups in that case.
|
* don't call estimate_num_groups in that case.
|
||||||
*/
|
*/
|
||||||
expr = (Node *) member->em_expr;
|
if (bms_is_member(0, pull_varnos((Node *) member->em_expr)))
|
||||||
|
|
||||||
if (IsA(expr, RelabelType))
|
|
||||||
expr = (Node *) ((RelabelType *) expr)->arg;
|
|
||||||
|
|
||||||
varnos = pull_varnos(expr);
|
|
||||||
|
|
||||||
if (bms_is_member(0, varnos))
|
|
||||||
{
|
{
|
||||||
unknown_varno = true;
|
unknown_varno = true;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user