aboutsummaryrefslogtreecommitdiff
path: root/src/fkey.c
diff options
context:
space:
mode:
authordrh <>2022-04-04 18:17:59 +0000
committerdrh <>2022-04-04 18:17:59 +0000
commit36d2d09023b68299e27528cda0e74071a670ffef (patch)
tree3babc71000c47893c972ac24aaf7e7d5ff892a7c /src/fkey.c
parent0de10ac11cb9f5e0e1bed4c56c20b118a20dae3a (diff)
downloadsqlite-36d2d09023b68299e27528cda0e74071a670ffef.tar.gz
sqlite-36d2d09023b68299e27528cda0e74071a670ffef.zip
Use unpacked keys for OP_Found in foreign key processing.
FossilOrigin-Name: 328dc76657eb5317f0201859d2b3abe6918103b894f7beaed0aca3058a9f2b64
Diffstat (limited to 'src/fkey.c')
-rw-r--r--src/fkey.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/fkey.c b/src/fkey.c
index b464743c7..bae9b11ac 100644
--- a/src/fkey.c
+++ b/src/fkey.c
@@ -390,7 +390,6 @@ static void fkLookupParent(
}else{
int nCol = pFKey->nCol;
int regTemp = sqlite3GetTempRange(pParse, nCol);
- int regRec = sqlite3GetTempReg(pParse);
sqlite3VdbeAddOp3(v, OP_OpenRead, iCur, pIdx->tnum, iDb);
sqlite3VdbeSetP4KeyInfo(pParse, pIdx);
@@ -429,12 +428,11 @@ static void fkLookupParent(
}
sqlite3VdbeGoto(v, iOk);
}
-
- sqlite3VdbeAddOp4(v, OP_MakeRecord, regTemp, nCol, regRec,
+
+ sqlite3VdbeAddOp4(v, OP_Affinity, regTemp, nCol, 0,
sqlite3IndexAffinityStr(pParse->db,pIdx), nCol);
- sqlite3VdbeAddOp4Int(v, OP_Found, iCur, iOk, regRec, 0); VdbeCoverage(v);
-
- sqlite3ReleaseTempReg(pParse, regRec);
+ sqlite3VdbeAddOp4Int(v, OP_Found, iCur, iOk, regTemp, nCol);
+ VdbeCoverage(v);
sqlite3ReleaseTempRange(pParse, regTemp, nCol);
}
}