美文网首页程序员
openGauss源码#openGuass的行insert

openGauss源码#openGuass的行insert

作者: upup果 | 来源:发表于2020-12-02 12:25 被阅读0次

    今天看了openGauss的MOT引擎中,InsertRow的部分.记录一下

    1. 行插入在FDW的入口函数是MOTExecForeignInsert,这个函数会创建一个MOTFdwStateSt,然后用事务ID,TxnManager,table等对象以及属性使用和修改的指针对其初始化.
    2. fdwState初始化完成后,调用MOTAdaptor::InsertRow(fdwState, slot)函数,slot是保存了行数据相关信息的数据结构
    3. 在InsertRow中,先调用table的CreateRow函数,创建一个Row*,并获取数据的地址给newRowData,然后调用Pack函数将slot数据复制到newRowData中,再调用table的InsertRow(row, fdwState->m_currTxn).
    4. table的InsertRow方法中,先根据代理键设置RowId,获取主索引ix后,调用txn(TxnManager)的GetTxnKey(ix),创建一个新key,然后将数据和key添加到索引中

    相关文章

      网友评论

        本文标题:openGauss源码#openGuass的行insert

        本文链接:https://www.haomeiwen.com/subject/pyvjwktx.html