2021SC@SDUSC
OP_Goto
OP_Goto的内容:
case OP_Goto: {
pc = pOp->p2 - 1;
}
OP_Goto操作符就是跳转到p2所指向的操作码,这里是pc为0,经过for循环后pc为1。下一个要执行的是 aOp[1] OP_ReadCookie。
OP_ReadCookie
OP_ReadCookie的内容:
case OP_ReadCookie: {
int iMeta;
int iDb = pOp->p1;
int iCookie = pOp->p3;
sqlite3BtreeGetMeta(db->aDb[iDb].pBt,iCookie,(u32*)&iMeta);
}
sqlite3BtreeGetMeta函数是根据p3的值从第iDb号数据库中读取相应的元信息,这里p3为2,所以读取的是数据库格式信息。
OP_If
OP_If的内容:
case OP_If: {
int c;
pIn1 = &aMem[pOp->p1

本文深入分析SQLite源代码,详细解读OP_Goto、OP_ReadCookie、OP_If、OP_Integer、OP_SetCookie、OP_CreateTable和OP_OpenWrite等操作码的功能和实现。通过这些操作码,了解SQLite如何处理数据库元信息、条件判断、整数赋值、设置cookie、创建表及打开写入游标的过程。
最低0.47元/天 解锁文章
1031

被折叠的 条评论
为什么被折叠?



