diff options
author | danielk1977 <danielk1977@noemail.net> | 2008-07-29 10:18:57 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2008-07-29 10:18:57 +0000 |
commit | 808ec7c0c773cc16cf8b91519e7ecdc917ece548 (patch) | |
tree | 589757ceffc2297d437c849b205ccf25a24fa24b /src | |
parent | b5f94870c24c3a4c9e83adadcb38d42691b4d9d8 (diff) | |
download | sqlite-808ec7c0c773cc16cf8b91519e7ecdc917ece548.tar.gz sqlite-808ec7c0c773cc16cf8b91519e7ecdc917ece548.zip |
Speed up OP_Column by eliminating some double handling. (CVS 5490)
FossilOrigin-Name: 9ebee8401b68a2bcd49dc750ac394258d554b499
Diffstat (limited to 'src')
-rw-r--r-- | src/vdbe.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/vdbe.c b/src/vdbe.c index cab2cde5f..3ba3e1daa 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -43,7 +43,7 @@ ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** -** $Id: vdbe.c,v 1.766 2008/07/28 19:34:54 drh Exp $ +** $Id: vdbe.c,v 1.767 2008/07/29 10:18:57 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> @@ -2155,17 +2155,8 @@ case OP_Column: { if( aOffset[p2] ){ assert( rc==SQLITE_OK ); if( zRec ){ - if( pDest->flags&MEM_Dyn ){ - sqlite3VdbeSerialGet((u8 *)&zRec[aOffset[p2]], aType[p2], &sMem); - sMem.db = db; - rc = sqlite3VdbeMemCopy(pDest, &sMem); - assert( !(sMem.flags&MEM_Dyn) ); - if( rc!=SQLITE_OK ){ - goto op_column_out; - } - }else{ - sqlite3VdbeSerialGet((u8 *)&zRec[aOffset[p2]], aType[p2], pDest); - } + sqlite3VdbeMemReleaseExternal(pDest); + sqlite3VdbeSerialGet((u8 *)&zRec[aOffset[p2]], aType[p2], pDest); }else{ len = sqlite3VdbeSerialTypeLen(aType[p2]); sqlite3VdbeMemMove(&sMem, pDest); |