SQL/JSON: Remove useless code in ExecInitJsonExpr()
authorAmit Langote <amitlan@postgresql.org>
Fri, 26 Jul 2024 07:38:46 +0000 (16:38 +0900)
committerAmit Langote <amitlan@postgresql.org>
Fri, 26 Jul 2024 07:38:46 +0000 (16:38 +0900)
The code was for adding an unconditional JUMP to the next step,
which is unnecessary processing.

Reported-by: Jian He <jian.universality@gmail.com>
Discussion: https://postgr.es/m/CACJufxEo4sUjKCYtda0_qt9tazqqKPmF1cqhW9KBOUeJFqQd2g@mail.gmail.com
Backpatch-through: 17

src/backend/executor/execExpr.c

index b10359e3d6be119ebf52b61c2edc7f2fc709fa9a..f1caf48036b13482247ee330e28815d5e422a4db 100644 (file)
@@ -4312,21 +4312,6 @@ ExecInitJsonExpr(JsonExpr *jsexpr, ExprState *state,
        scratch->d.constval.isnull = true;
        ExprEvalPushStep(state, scratch);
 
-       /*
-        * Jump to coerce the NULL using json_populate_type() if needed.  Coercing
-        * NULL is only interesting when the RETURNING type is a domain whose
-        * constraints must be checked.  jsexpr->use_json_coercion must have been
-        * set in that case.
-        */
-       if (get_typtype(jsexpr->returning->typid) == TYPTYPE_DOMAIN &&
-               DomainHasConstraints(jsexpr->returning->typid))
-       {
-               Assert(jsexpr->use_json_coercion);
-               scratch->opcode = EEOP_JUMP;
-               scratch->d.jump.jumpdone = state->steps_len + 1;
-               ExprEvalPushStep(state, scratch);
-       }
-
        /*
         * To handle coercion errors softly, use the following ErrorSaveContext to
         * pass to ExecInitExprRec() when initializing the coercion expressions