Add testcase macros.
FossilOrigin-Name: fb9c9bb284d441bd7aa34c87b6fd8ce57d036c17623d82354154fc6286bdd134
diff --git a/src/expr.c b/src/expr.c
index c57a000..01e9942 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -3410,10 +3410,12 @@
return;
#endif
}else if( !HasRowid(pTab) ){
+ testcase( iCol!=sqlite3TableColumnToStorage(pTab, iCol) );
x = sqlite3TableColumnToIndex(sqlite3PrimaryKeyIndex(pTab), iCol);
op = OP_Column;
}else{
x = sqlite3TableColumnToStorage(pTab,iCol);
+ testcase( x!=iCol );
op = OP_Column;
}
sqlite3VdbeAddOp3(v, op, iTabCur, x, regOut);
@@ -3584,15 +3586,16 @@
Column *pCol;
Table *pTab = pExpr->y.pTab;
int iSrc;
+ int iCol = pExpr->iColumn;
assert( pTab!=0 );
- assert( pExpr->iColumn>=XN_ROWID );
- assert( pExpr->iColumn<pExpr->y.pTab->nCol );
- if( pExpr->iColumn<0 ){
+ assert( iCol>=XN_ROWID );
+ assert( iCol<pExpr->y.pTab->nCol );
+ if( iCol<0 ){
return -1-pParse->iSelfTab;
}
- pCol = pTab->aCol + pExpr->iColumn;
- iSrc = sqlite3TableColumnToStorage(pTab, pExpr->iColumn)
- - pParse->iSelfTab;
+ pCol = pTab->aCol + iCol;
+ testcase( iCol!=sqlite3TableColumnToStorage(pTab,iCol) );
+ iSrc = sqlite3TableColumnToStorage(pTab, iCol) - pParse->iSelfTab;
#ifndef SQLITE_OMIT_GENERATED_COLUMNS
if( pCol->colFlags & COLFLAG_GENERATED ){
if( pCol->colFlags & COLFLAG_BUSY ){