今天看了openGauss的MOT引擎中,update的部分,记录一下
- 在fdw中调用MOTExecForeignUpdate,获取fdwState和curRow,并更新planSlot
- 在MOTExecForeignUpdate中调用MOTAdaptor::UpdateRow(fdwState, planSlot, currRow):首先,fdwState设置事务ID,更新AccessType。获取
unit8_t *的rowData。然后调用PackUpdateRow(slot, fdwState->m_table, fdwState->m_attrsModified, rowData)。 - PackUpdateRow:找到更新的列,记录到BitmapSet中,最后调用事务管理器的OverwriteRow进行更新row.
网友评论