mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-12 18:34:36 +08:00
Remove a useless PG_GETARG_DATUM() call from jsonb_build_array.
This loop uselessly fetched the argument after the one it's currently looking at. No real harm is done since we couldn't possibly fetch off the end of memory, but it's confusing to the reader. Also remove a duplicate (and therefore confusing) PG_ARGISNULL check in jsonb_build_object. I happened to notice these things while trolling for missed null-arg checks earlier today. Back-patch to 9.5, not because there is any real bug, but just because 9.5 and HEAD are still in sync in this file and we might as well keep them so. In passing, re-pgindent.
This commit is contained in:
parent
3ef16c46fb
commit
820bdccc1b
@ -1187,7 +1187,6 @@ jsonb_build_object(PG_FUNCTION_ARGS)
|
|||||||
|
|
||||||
for (i = 0; i < nargs; i += 2)
|
for (i = 0; i < nargs; i += 2)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* process key */
|
/* process key */
|
||||||
|
|
||||||
if (PG_ARGISNULL(i))
|
if (PG_ARGISNULL(i))
|
||||||
@ -1203,9 +1202,6 @@ jsonb_build_object(PG_FUNCTION_ARGS)
|
|||||||
if (val_type == UNKNOWNOID && get_fn_expr_arg_stable(fcinfo->flinfo, i))
|
if (val_type == UNKNOWNOID && get_fn_expr_arg_stable(fcinfo->flinfo, i))
|
||||||
{
|
{
|
||||||
val_type = TEXTOID;
|
val_type = TEXTOID;
|
||||||
if (PG_ARGISNULL(i))
|
|
||||||
arg = (Datum) 0;
|
|
||||||
else
|
|
||||||
arg = CStringGetTextDatum(PG_GETARG_POINTER(i));
|
arg = CStringGetTextDatum(PG_GETARG_POINTER(i));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1240,7 +1236,6 @@ jsonb_build_object(PG_FUNCTION_ARGS)
|
|||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("argument %d: could not determine data type", i + 2)));
|
errmsg("argument %d: could not determine data type", i + 2)));
|
||||||
add_jsonb(arg, PG_ARGISNULL(i + 1), &result, val_type, false);
|
add_jsonb(arg, PG_ARGISNULL(i + 1), &result, val_type, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
result.res = pushJsonbValue(&result.parseState, WJB_END_OBJECT, NULL);
|
result.res = pushJsonbValue(&result.parseState, WJB_END_OBJECT, NULL);
|
||||||
@ -1283,7 +1278,6 @@ jsonb_build_array(PG_FUNCTION_ARGS)
|
|||||||
for (i = 0; i < nargs; i++)
|
for (i = 0; i < nargs; i++)
|
||||||
{
|
{
|
||||||
val_type = get_fn_expr_argtype(fcinfo->flinfo, i);
|
val_type = get_fn_expr_argtype(fcinfo->flinfo, i);
|
||||||
arg = PG_GETARG_DATUM(i + 1);
|
|
||||||
/* see comments in jsonb_build_object above */
|
/* see comments in jsonb_build_object above */
|
||||||
if (val_type == UNKNOWNOID && get_fn_expr_arg_stable(fcinfo->flinfo, i))
|
if (val_type == UNKNOWNOID && get_fn_expr_arg_stable(fcinfo->flinfo, i))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user