1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-08 03:22:21 +03:00

When extracting values from a record to use in an UPDATEd version of that record, apply OP_RealAffinity if required. Fix for #3992. (CVS 6945)

FossilOrigin-Name: 3616766a6f5c8179cc55444c29ecf29cc69f88ce
This commit is contained in:
danielk1977
2009-07-27 10:05:04 +00:00
parent a53c704fec
commit c7538b5f63
7 changed files with 112 additions and 26 deletions

View File

@@ -12,7 +12,7 @@
** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite.
**
** $Id: expr.c,v 1.447 2009/07/16 12:41:06 drh Exp $
** $Id: expr.c,v 1.448 2009/07/27 10:05:05 danielk1977 Exp $
*/
#include "sqliteInt.h"
@@ -1924,12 +1924,7 @@ int sqlite3ExprCodeGetColumn(
}else if( ALWAYS(pTab!=0) ){
int op = IsVirtual(pTab) ? OP_VColumn : OP_Column;
sqlite3VdbeAddOp3(v, op, iTable, iColumn, iReg);
sqlite3ColumnDefault(v, pTab, iColumn);
#ifndef SQLITE_OMIT_FLOATING_POINT
if( pTab->aCol[iColumn].affinity==SQLITE_AFF_REAL ){
sqlite3VdbeAddOp1(v, OP_RealAffinity, iReg);
}
#endif
sqlite3ColumnDefault(v, pTab, iColumn, iReg);
}
sqlite3ExprCacheStore(pParse, iTable, iColumn, iReg);
return iReg;