Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Simplify cost_incremental_sort a bit
authorTomas Vondra <tomas.vondra@postgresql.org>
Fri, 1 May 2020 23:25:00 +0000 (01:25 +0200)
committerTomas Vondra <tomas.vondra@postgresql.org>
Fri, 1 May 2020 23:33:51 +0000 (01:33 +0200)
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

src/backend/optimizer/path/costsize.c

index f5f9bae1a209102b0a9a3c917a651aa4d1b0d365..b10b14a7fb821bd2d773ad4380e734fbabd9fc1d 100644 (file)
@@ -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;