Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit62db6a7

Browse files
author
Nikita Glukhov
committed
Remove COERCE_INTERNAL_CAST in IS JSON
1 parent98a30c9 commit62db6a7

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

‎src/backend/parser/parse_expr.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4353,15 +4353,24 @@ transformJsonArrayConstructor(ParseState *pstate, JsonArrayConstructor *ctor)
43534353
staticNode*
43544354
transformJsonIsPredicate(ParseState*pstate,JsonIsPredicate*pred)
43554355
{
4356-
Node*expr=transformExprRecurse(pstate,pred->expr);
4356+
Node*raw_expr=transformExprRecurse(pstate,pred->expr);
4357+
Node*expr=raw_expr;
43574358
Oidexprtype=exprType(expr);
43584359

43594360
/* prepare input document */
43604361
if (exprtype==BYTEAOID)
43614362
{
4363+
JsonValueExpr*jve;
4364+
4365+
expr=makeCaseTestExpr(raw_expr);
43624366
expr=makeJsonByteaToTextConversion(expr,pred->format,
43634367
exprLocation(expr));
43644368
exprtype=TEXTOID;
4369+
4370+
jve=makeJsonValueExpr((Expr*)raw_expr,pred->format);
4371+
4372+
jve->formatted_expr= (Expr*)expr;
4373+
expr= (Node*)jve;
43654374
}
43664375
else
43674376
{
@@ -4386,8 +4395,6 @@ transformJsonIsPredicate(ParseState *pstate, JsonIsPredicate *pred)
43864395
errmsg("cannot use JSON FORMAT ENCODING clause for non-bytea input types")));
43874396
}
43884397

4389-
expr= (Node*)makeJsonValueExpr((Expr*)expr,pred->format);
4390-
43914398
/* make resulting expression */
43924399
if (exprtype!=TEXTOID&&exprtype!=JSONOID&&exprtype!=JSONBOID)
43934400
ereport(ERROR,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp