aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordanielk1977 <danielk1977@noemail.net>2008-07-29 10:18:57 +0000
committerdanielk1977 <danielk1977@noemail.net>2008-07-29 10:18:57 +0000
commit808ec7c0c773cc16cf8b91519e7ecdc917ece548 (patch)
tree589757ceffc2297d437c849b205ccf25a24fa24b /src
parentb5f94870c24c3a4c9e83adadcb38d42691b4d9d8 (diff)
downloadsqlite-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.c15
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);