summaryrefslogtreecommitdiff
path: root/src/backend/nodes
diff options
context:
space:
mode:
authorAmit Langote2023-07-21 10:15:34 +0000
committerAmit Langote2023-07-21 10:15:34 +0000
commit7c7412cae3ea8f8accdec1022969a9360b74f253 (patch)
tree1ce80497cc5adbe9a33723740a296de929000664 /src/backend/nodes
parent97ff8dd02ca788020021cdafb85d77d4fd3f3125 (diff)
Code review for commit b6e1157e7d
b6e1157e7d made some changes to enforce that JsonValueExpr.formatted_expr is always set and is the expression that gives a JsonValueExpr its runtime value, but that's not really apparent from the comments about and the code manipulating formatted_expr. This commit fixes that. Per suggestion from Álvaro Herrera. Discussion: https://postgr.es/m/20230718155313.3wqg6encgt32adqb%40alvherre.pgsql
Diffstat (limited to 'src/backend/nodes')
-rw-r--r--src/backend/nodes/makefuncs.c11
-rw-r--r--src/backend/nodes/nodeFuncs.c4
2 files changed, 5 insertions, 10 deletions
diff --git a/src/backend/nodes/makefuncs.c b/src/backend/nodes/makefuncs.c
index c6c310d2531..0e7e6e46d94 100644
--- a/src/backend/nodes/makefuncs.c
+++ b/src/backend/nodes/makefuncs.c
@@ -848,16 +848,13 @@ makeJsonFormat(JsonFormatType type, JsonEncoding encoding, int location)
* creates a JsonValueExpr node
*/
JsonValueExpr *
-makeJsonValueExpr(Expr *expr, JsonFormat *format)
+makeJsonValueExpr(Expr *raw_expr, Expr *formatted_expr,
+ JsonFormat *format)
{
JsonValueExpr *jve = makeNode(JsonValueExpr);
- jve->raw_expr = expr;
-
- /*
- * Set after checking the format, if needed, in transformJsonValueExpr().
- */
- jve->formatted_expr = NULL;
+ jve->raw_expr = raw_expr;
+ jve->formatted_expr = formatted_expr;
jve->format = format;
return jve;
diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c
index c41e6bb984c..503d76aae07 100644
--- a/src/backend/nodes/nodeFuncs.c
+++ b/src/backend/nodes/nodeFuncs.c
@@ -225,9 +225,7 @@ exprType(const Node *expr)
{
const JsonValueExpr *jve = (const JsonValueExpr *) expr;
- type = exprType((Node *)
- (jve->formatted_expr ? jve->formatted_expr :
- jve->raw_expr));
+ type = exprType((Node *) jve->formatted_expr);
}
break;
case T_JsonConstructorExpr: