fix problem that size is not same when opfusion is on|off

This commit is contained in:
yanghao
2025-03-05 11:27:02 +08:00
committed by zhangxubo
parent 588d6b21bb
commit e5ee95e88a

View File

@ -4124,6 +4124,17 @@ ModifyTableState* ExecInitModifyTable(ModifyTable* node, EState* estate, int efl
mt_state->mt_plans[i] = ExecInitNode(sub_plan, estate, eflags);
}
InitMultipleModify(mt_state, mt_state->mt_plans[i], (uint32)resultRelationNum);
if (operation == CMD_INSERT && mt_state->mt_plans[i]->ps_ResultTupleSlot != NULL) {
/* Reset attstorage */
TupleDesc plan_tuple_desc = mt_state->mt_plans[i]->ps_ResultTupleSlot->tts_tupleDescriptor;
TupleDesc ret_tuple_desc = result_rel_info->ri_RelationDesc->rd_att;
for (int i = 0; i < plan_tuple_desc->natts; i++) {
if (likely(i < ret_tuple_desc->natts)) {
plan_tuple_desc->attrs[i].attstorage = ret_tuple_desc->attrs[i].attstorage;
}
}
}
estate->es_result_relation_info = result_rel_info;
/*
* If there are indices on the result relation, open them and save