diff --git a/src/gausskernel/runtime/opfusion/opfusion_update.cpp b/src/gausskernel/runtime/opfusion/opfusion_update.cpp index 0eb260c48..a04c7ee69 100644 --- a/src/gausskernel/runtime/opfusion/opfusion_update.cpp +++ b/src/gausskernel/runtime/opfusion/opfusion_update.cpp @@ -602,7 +602,8 @@ bool UpdateFusion::execute(long max_rows, char *completionTag) m_c_local.m_estate->es_plannedstmt = m_global->m_planstmt; if (result_rel_info->ri_RelationDesc->rd_rel->relhasindex) { - ExecOpenIndices(result_rel_info, true); + bool speculative = m_c_local.m_estate->es_plannedstmt && m_c_local.m_estate->es_plannedstmt->hasIgnore; + ExecOpenIndices(result_rel_info, speculative); } ModifyTable* node = (ModifyTable*)(m_global->m_planstmt->planTree);