Overview
Comment: | Remove an unreachable branch operation from the foreign_key_check pragma. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | foreign-key-check |
Files: | files | file ages | folders |
SHA1: | b5a8f3160b5dc1397312add3c5410e7e0a12b75e |
User & Date: | drh 2012-12-20 00:32:49 |
Context
2012-12-20
| ||
01:15 | Add PRAGMA foreign_key_check. Name the child and parent tables as part of a "foreign key mismatch" error. check-in: e408dc90 user: drh tags: trunk | |
00:32 | Remove an unreachable branch operation from the foreign_key_check pragma. Closed-Leaf check-in: b5a8f316 user: drh tags: foreign-key-check | |
2012-12-17
| ||
22:32 | Added test cases for PRAGMA foreign_key_check. Fixed a bug that appears when the column order of the child and parent differ. check-in: 25411f83 user: drh tags: foreign-key-check | |
Changes
Changes to src/pragma.c.
1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 |
pIdx = 0;
aiCols = 0;
x = sqlite3FkLocateIndex(pParse, pParent, pFK, &pIdx, &aiCols);
assert( x==0 );
addrOk = sqlite3VdbeMakeLabel(v);
if( pIdx==0 ){
int iKey = pFK->aCol[0].iFrom;
if( iKey>=0 && iKey!=pTab->iPKey ){
sqlite3VdbeAddOp3(v, OP_Column, 0, iKey, regRow);
sqlite3ColumnDefault(v, pTab, iKey, regRow);
sqlite3VdbeAddOp2(v, OP_IsNull, regRow, addrOk);
sqlite3VdbeAddOp2(v, OP_MustBeInt, regRow,
sqlite3VdbeCurrentAddr(v)+3);
}else{
sqlite3VdbeAddOp2(v, OP_Rowid, 0, regRow);
|
> | |
1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 |
pIdx = 0;
aiCols = 0;
x = sqlite3FkLocateIndex(pParse, pParent, pFK, &pIdx, &aiCols);
assert( x==0 );
addrOk = sqlite3VdbeMakeLabel(v);
if( pIdx==0 ){
int iKey = pFK->aCol[0].iFrom;
assert( iKey>=0 && iKey<pTab->nCol );
if( iKey!=pTab->iPKey ){
sqlite3VdbeAddOp3(v, OP_Column, 0, iKey, regRow);
sqlite3ColumnDefault(v, pTab, iKey, regRow);
sqlite3VdbeAddOp2(v, OP_IsNull, regRow, addrOk);
sqlite3VdbeAddOp2(v, OP_MustBeInt, regRow,
sqlite3VdbeCurrentAddr(v)+3);
}else{
sqlite3VdbeAddOp2(v, OP_Rowid, 0, regRow);
|