@ -658,6 +658,12 @@ ExecInsert(ModifyTableState *mtstate,
}
}
else if ( resultRelInfo - > ri_FdwRoutine )
else if ( resultRelInfo - > ri_FdwRoutine )
{
{
/*
* GENERATED expressions might reference the tableoid column , so
* ( re - ) initialize tts_tableOid before evaluating them .
*/
slot - > tts_tableOid = RelationGetRelid ( resultRelInfo - > ri_RelationDesc ) ;
/*
/*
* Compute stored generated columns
* Compute stored generated columns
*/
*/
@ -729,7 +735,7 @@ ExecInsert(ModifyTableState *mtstate,
/*
/*
* AFTER ROW Triggers or RETURNING expressions might reference the
* AFTER ROW Triggers or RETURNING expressions might reference the
* tableoid column , so ( re - ) initialize tts_tableOid before evaluating
* tableoid column , so ( re - ) initialize tts_tableOid before evaluating
* them .
* them . ( This covers the case where the FDW replaced the slot . )
*/
*/
slot - > tts_tableOid = RelationGetRelid ( resultRelInfo - > ri_RelationDesc ) ;
slot - > tts_tableOid = RelationGetRelid ( resultRelInfo - > ri_RelationDesc ) ;
}
}
@ -738,8 +744,8 @@ ExecInsert(ModifyTableState *mtstate,
WCOKind wco_kind ;
WCOKind wco_kind ;
/*
/*
* Constraints might reference the tableoid column , so ( re - ) initialize
* Constraints and GENERATED expressions might reference the tableoid
* tts_tableOid before evaluating them .
* column , so ( re - ) initialize tts_tableOid before evaluating them .
*/
*/
slot - > tts_tableOid = RelationGetRelid ( resultRelationDesc ) ;
slot - > tts_tableOid = RelationGetRelid ( resultRelationDesc ) ;
@ -1629,6 +1635,12 @@ ExecUpdate(ModifyTableState *mtstate,
}
}
else if ( resultRelInfo - > ri_FdwRoutine )
else if ( resultRelInfo - > ri_FdwRoutine )
{
{
/*
* GENERATED expressions might reference the tableoid column , so
* ( re - ) initialize tts_tableOid before evaluating them .
*/
slot - > tts_tableOid = RelationGetRelid ( resultRelInfo - > ri_RelationDesc ) ;
/*
/*
* Compute stored generated columns
* Compute stored generated columns
*/
*/
@ -1651,7 +1663,7 @@ ExecUpdate(ModifyTableState *mtstate,
/*
/*
* AFTER ROW Triggers or RETURNING expressions might reference the
* AFTER ROW Triggers or RETURNING expressions might reference the
* tableoid column , so ( re - ) initialize tts_tableOid before evaluating
* tableoid column , so ( re - ) initialize tts_tableOid before evaluating
* them .
* them . ( This covers the case where the FDW replaced the slot . )
*/
*/
slot - > tts_tableOid = RelationGetRelid ( resultRelationDesc ) ;
slot - > tts_tableOid = RelationGetRelid ( resultRelationDesc ) ;
}
}
@ -1662,8 +1674,8 @@ ExecUpdate(ModifyTableState *mtstate,
bool update_indexes ;
bool update_indexes ;
/*
/*
* Constraints might reference the tableoid column , so ( re - ) initialize
* Constraints and GENERATED expressions might reference the tableoid
* tts_tableOid before evaluating them .
* column , so ( re - ) initialize tts_tableOid before evaluating them .
*/
*/
slot - > tts_tableOid = RelationGetRelid ( resultRelationDesc ) ;
slot - > tts_tableOid = RelationGetRelid ( resultRelationDesc ) ;