diff options
author | danielk1977 <danielk1977@noemail.net> | 2004-05-18 09:58:06 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2004-05-18 09:58:06 +0000 |
commit | 84ac9d02dd8ff5d03ce8bc5e91a68c0989633eef (patch) | |
tree | e318aef61a7685902c7a485e0fa5c91b12be84e0 /src/insert.c | |
parent | eb015e03e1c1e436bf17d457d8f98cc26e97aa41 (diff) | |
download | sqlite-84ac9d02dd8ff5d03ce8bc5e91a68c0989633eef.tar.gz sqlite-84ac9d02dd8ff5d03ce8bc5e91a68c0989633eef.zip |
Fix many problems with manifest types and column affinity. Most things are
working now. (CVS 1392)
FossilOrigin-Name: a62872aacd544a1465b06e007153168663f3c83a
Diffstat (limited to 'src/insert.c')
-rw-r--r-- | src/insert.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/insert.c b/src/insert.c index f572bb893..12ed4a4d5 100644 --- a/src/insert.c +++ b/src/insert.c @@ -12,7 +12,7 @@ ** This file contains C code routines that are called by the parser ** to handle INSERT statements in SQLite. ** -** $Id: insert.c,v 1.101 2004/05/18 01:23:38 danielk1977 Exp $ +** $Id: insert.c,v 1.102 2004/05/18 09:58:07 danielk1977 Exp $ */ #include "sqliteInt.h" @@ -260,7 +260,7 @@ void sqlite3Insert( iInitCode = sqlite3VdbeAddOp(v, OP_Goto, 0, 0); iSelectLoop = sqlite3VdbeCurrentAddr(v); iInsertBlock = sqlite3VdbeMakeLabel(v); - rc = sqlite3Select(pParse, pSelect, SRT_Subroutine, iInsertBlock, 0,0,0); + rc = sqlite3Select(pParse, pSelect, SRT_Subroutine, iInsertBlock, 0,0,0,0); if( rc || pParse->nErr || sqlite3_malloc_failed ) goto insert_cleanup; iCleanup = sqlite3VdbeMakeLabel(v); sqlite3VdbeAddOp(v, OP_Goto, 0, iCleanup); @@ -278,7 +278,7 @@ void sqlite3Insert( if( row_triggers_exist ){ useTempTable = 1; }else{ - int addr = sqlite3VdbeFindOp(v, OP_OpenRead, pTab->tnum); + int addr = sqlite3VdbeFindOp(v, 0, OP_OpenRead, pTab->tnum); useTempTable = 0; if( addr>0 ){ VdbeOp *pOp = sqlite3VdbeGetOp(v, addr-2); @@ -398,6 +398,7 @@ void sqlite3Insert( */ if( row_triggers_exist ){ sqlite3VdbeAddOp(v, OP_OpenPseudo, newIdx, 0); + sqlite3VdbeAddOp(v, OP_SetNumColumns, newIdx, pTab->nCol); } /* Initialize the count of rows to be inserted |