Clean up some Coverity complaints about commit 0bf3ae88af330496.
The two get_tle_by_resno() calls introduced by this commit lacked any check for a NULL return, unlike any other calls of that function anywhere in our tree. Coverity quite properly complained about it. Also fix a misindented line in process_query_params(), which Coverity also complained about on the grounds that the bad indentation suggested possible programmer misinterpretation.
This commit is contained in:
parent
ae507d9222
commit
92b7902deb
@ -1356,6 +1356,10 @@ deparseDirectUpdateSql(StringInfo buf, PlannerInfo *root,
|
|||||||
int attnum = lfirst_int(lc);
|
int attnum = lfirst_int(lc);
|
||||||
TargetEntry *tle = get_tle_by_resno(targetlist, attnum);
|
TargetEntry *tle = get_tle_by_resno(targetlist, attnum);
|
||||||
|
|
||||||
|
if (!tle)
|
||||||
|
elog(ERROR, "attribute number %d not found in UPDATE targetlist",
|
||||||
|
attnum);
|
||||||
|
|
||||||
if (!first)
|
if (!first)
|
||||||
appendStringInfoString(buf, ", ");
|
appendStringInfoString(buf, ", ");
|
||||||
first = false;
|
first = false;
|
||||||
|
@ -2042,7 +2042,7 @@ postgresRecheckForeignScan(ForeignScanState *node, TupleTableSlot *slot)
|
|||||||
* postgresPlanDirectModify
|
* postgresPlanDirectModify
|
||||||
* Consider a direct foreign table modification
|
* Consider a direct foreign table modification
|
||||||
*
|
*
|
||||||
* Decide whether it is safe to modify a foreign table directly, and if so,
|
* Decide whether it is safe to modify a foreign table directly, and if so,
|
||||||
* rewrite subplan accordingly.
|
* rewrite subplan accordingly.
|
||||||
*/
|
*/
|
||||||
static bool
|
static bool
|
||||||
@ -2119,6 +2119,10 @@ postgresPlanDirectModify(PlannerInfo *root,
|
|||||||
|
|
||||||
tle = get_tle_by_resno(subplan->targetlist, attno);
|
tle = get_tle_by_resno(subplan->targetlist, attno);
|
||||||
|
|
||||||
|
if (!tle)
|
||||||
|
elog(ERROR, "attribute number %d not found in subplan targetlist",
|
||||||
|
attno);
|
||||||
|
|
||||||
if (!is_foreign_expr(root, baserel, (Expr *) tle->expr))
|
if (!is_foreign_expr(root, baserel, (Expr *) tle->expr))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -3305,7 +3309,8 @@ process_query_params(ExprContext *econtext,
|
|||||||
param_values[i] = NULL;
|
param_values[i] = NULL;
|
||||||
else
|
else
|
||||||
param_values[i] = OutputFunctionCall(¶m_flinfo[i], expr_value);
|
param_values[i] = OutputFunctionCall(¶m_flinfo[i], expr_value);
|
||||||
i++;
|
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
reset_transmission_modes(nestlevel);
|
reset_transmission_modes(nestlevel);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user