SQL/JSON: Remove useless code in ExecInitJsonExpr()
authorAmit Langote <[email protected]>
Fri, 26 Jul 2024 07:38:46 +0000 (16:38 +0900)
committerAmit Langote <[email protected]>
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 <[email protected]>
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