@@ -3693,8 +3693,7 @@ makeCaseTestExpr(Node *expr)
3693
3693
*/
3694
3694
static Node *
3695
3695
transformJsonValueExprExt (ParseState * pstate , JsonValueExpr * ve ,
3696
- JsonFormatType default_format , bool isarg ,
3697
- Node * * prawexpr )
3696
+ JsonFormatType default_format , bool isarg )
3698
3697
{
3699
3698
Node * expr = transformExprRecurse (pstate , (Node * ) ve -> raw_expr );
3700
3699
Node * rawexpr ;
@@ -3715,17 +3714,6 @@ transformJsonValueExprExt(ParseState *pstate, JsonValueExpr *ve,
3715
3714
3716
3715
rawexpr = expr ;
3717
3716
3718
- if (prawexpr )
3719
- {
3720
- /*
3721
- * Save a raw context item expression if it is needed for the isolation
3722
- * of error handling in the formatting stage.
3723
- */
3724
- * prawexpr = expr ;
3725
- assign_expr_collations (pstate , expr );
3726
- expr = makeCaseTestExpr (expr );
3727
- }
3728
-
3729
3717
if (ve -> format -> format != JS_FORMAT_DEFAULT )
3730
3718
{
3731
3719
if (ve -> format -> encoding != JS_ENC_DEFAULT && exprtype != BYTEAOID )
@@ -3846,7 +3834,7 @@ transformJsonValueExprExt(ParseState *pstate, JsonValueExpr *ve,
3846
3834
static Node *
3847
3835
transformJsonValueExpr (ParseState * pstate , JsonValueExpr * jve )
3848
3836
{
3849
- return transformJsonValueExprExt (pstate , jve , JS_FORMAT_JSON , false, NULL );
3837
+ return transformJsonValueExprExt (pstate , jve , JS_FORMAT_JSON , false);
3850
3838
}
3851
3839
3852
3840
/*
@@ -3855,7 +3843,7 @@ transformJsonValueExpr(ParseState *pstate, JsonValueExpr *jve)
3855
3843
static Node *
3856
3844
transformJsonValueExprDefault (ParseState * pstate , JsonValueExpr * jve )
3857
3845
{
3858
- return transformJsonValueExprExt (pstate , jve , JS_FORMAT_DEFAULT , false, NULL );
3846
+ return transformJsonValueExprExt (pstate , jve , JS_FORMAT_DEFAULT , false);
3859
3847
}
3860
3848
3861
3849
/*
@@ -4505,7 +4493,7 @@ transformJsonPassingArgs(ParseState *pstate, JsonFormatType format, List *args,
4505
4493
{
4506
4494
JsonArgument * arg = castNode (JsonArgument , lfirst (lc ));
4507
4495
Node * expr = transformJsonValueExprExt (pstate , arg -> val ,
4508
- format , true, NULL );
4496
+ format , true);
4509
4497
4510
4498
assign_expr_collations (pstate , expr );
4511
4499
@@ -4550,20 +4538,12 @@ transformJsonExprCommon(ParseState *pstate, JsonFuncExpr *func)
4550
4538
4551
4539
jsexpr -> location = func -> location ;
4552
4540
jsexpr -> op = func -> op ;
4553
- jsexpr -> formatted_expr = transformJsonValueExprExt (pstate ,
4554
- func -> common -> expr ,
4555
- JS_FORMAT_JSON ,
4556
- false,
4557
- & jsexpr -> raw_expr );
4541
+ jsexpr -> formatted_expr = transformJsonValueExpr (pstate , func -> common -> expr );
4558
4542
4559
4543
assign_expr_collations (pstate , jsexpr -> formatted_expr );
4560
4544
4561
4545
/* format is determined by context item type */
4562
- format = exprType (jsexpr -> formatted_expr ) == JSONBOID ?
4563
- JS_FORMAT_JSONB : JS_FORMAT_JSON ;
4564
-
4565
- if (jsexpr -> formatted_expr == jsexpr -> raw_expr )
4566
- jsexpr -> formatted_expr = NULL ;
4546
+ format = exprType (jsexpr -> formatted_expr ) == JSONBOID ? JS_FORMAT_JSONB : JS_FORMAT_JSON ;
4567
4547
4568
4548
jsexpr -> result_coercion = NULL ;
4569
4549
jsexpr -> omit_quotes = false;
@@ -4662,8 +4642,7 @@ static void
4662
4642
transformJsonFuncExprOutput (ParseState * pstate , JsonFuncExpr * func ,
4663
4643
JsonExpr * jsexpr )
4664
4644
{
4665
- Node * expr = jsexpr -> formatted_expr ?
4666
- jsexpr -> formatted_expr : jsexpr -> raw_expr ;
4645
+ Node * expr = jsexpr -> formatted_expr ;
4667
4646
4668
4647
jsexpr -> returning = transformJsonOutput (pstate , func -> output , false);
4669
4648
@@ -4689,7 +4668,7 @@ transformJsonFuncExprOutput(ParseState *pstate, JsonFuncExpr *func,
4689
4668
return ;
4690
4669
}
4691
4670
4692
- assignDefaultJsonReturningType (jsexpr -> raw_expr , jsexpr -> format , & ret );
4671
+ assignDefaultJsonReturningType (jsexpr -> formatted_expr , jsexpr -> format , & ret );
4693
4672
4694
4673
if (ret .typid != jsexpr -> returning -> typid ||
4695
4674
ret .typmod != jsexpr -> returning -> typmod )
@@ -4704,7 +4683,7 @@ transformJsonFuncExprOutput(ParseState *pstate, JsonFuncExpr *func,
4704
4683
}
4705
4684
}
4706
4685
else
4707
- assignDefaultJsonReturningType (jsexpr -> raw_expr , jsexpr -> format ,
4686
+ assignDefaultJsonReturningType (jsexpr -> formatted_expr , jsexpr -> format ,
4708
4687
jsexpr -> returning );
4709
4688
}
4710
4689
@@ -4809,9 +4788,8 @@ static Node *
4809
4788
transformJsonFuncExpr (ParseState * pstate , JsonFuncExpr * func )
4810
4789
{
4811
4790
JsonExpr * jsexpr = transformJsonExprCommon (pstate , func );
4812
- Node * contextItemExpr =
4813
- jsexpr -> formatted_expr ? jsexpr -> formatted_expr : jsexpr -> raw_expr ;
4814
4791
const char * func_name = NULL ;
4792
+ Node * contextItemExpr = jsexpr -> formatted_expr ;
4815
4793
4816
4794
switch (func -> op )
4817
4795
{
0 commit comments