]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Elminiate a VM opcode that was no longer needed. (CVS 2505)
authordrh <drh@noemail.net>
Sun, 12 Jun 2005 12:01:19 +0000 (12:01 +0000)
committerdrh <drh@noemail.net>
Sun, 12 Jun 2005 12:01:19 +0000 (12:01 +0000)
FossilOrigin-Name: 97b348a5ad2f090ba7a75467b97c6dfb575df09c

manifest
manifest.uuid
src/select.c
src/vdbe.c

index 6b3eab41cdd1eddf2eb07ce6faee17be7c47335d..c82cf3a3be7a3d488b97487d767a3bb5d6b12b14 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Changes\sto\ssupport\slinking\swithout\sa\sparser\sand\swithout\sa\sdisk\sI/O\sinterface.\s(CVS\s2504)
-D 2005-06-07T22:22:51
+C Elminiate\sa\sVM\sopcode\sthat\swas\sno\slonger\sneeded.\s(CVS\s2505)
+D 2005-06-12T12:01:19
 F Makefile.in 8129e7f261d405db783676f9ca31e0841768c652
 F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -60,7 +60,7 @@ F src/pragma.c 344e50166437194c21332ada036671a3ac95652c
 F src/prepare.c d53602d2f8e097225ae7c76ec764ae68f759ba47
 F src/printf.c 3d20b21cfecadacecac3fb7274e746cb81d3d357
 F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3
-F src/select.c ce4b9fd78d57693e756e8e51e9c7aa098c1508bb
+F src/select.c 266416bb8af3827dd925f12646db8d59e2fe02ac
 F src/shell.c 25b3217d7c64e6497225439d261a253a23efff26
 F src/sqlite.h.in f28f5b018f03a66aaf0bc1ab6985d8605d6b964f
 F src/sqliteInt.h 42b464cd380dd81bf7873476fc5974985a506d71
@@ -77,7 +77,7 @@ F src/update.c 04ea9dd784ccfeaf38a681b3edfe3b1c4edfdda7
 F src/utf.c bda5eb85039ef16f2d17004c1e18c96e1ab0a80c
 F src/util.c 96008b52604d08b9cc57ed37350149d6ac8a1bf3
 F src/vacuum.c 829d9e1a6d7c094b80e0899686670932eafd768c
-F src/vdbe.c e9bf69b2ba382ba23b48f98778f46d3261ae0e2c
+F src/vdbe.c 77c53143c329df6a1d5b14cbb3ed61164063c5e4
 F src/vdbe.h 75e466d84d362b0c4498978a9d6b1e6bd32ecf3b
 F src/vdbeInt.h 4afaae2f4adcab54ad2a40dabb2e689fba7b1561
 F src/vdbeapi.c 9a9556b9d7e3a052f58de389caf69449558e7380
@@ -281,7 +281,7 @@ F www/tclsqlite.tcl 425be741b8ae664f55cb1ef2371aab0a75109cf9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
 F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b
-P 4704f3a19af73261ec03c0192c74a0416aeba794
-R 85f6631c1bb94d9cca30c0626cafa234
+P 62a7353d4af4886b1561832e8b36e8e788b38834
+R 59f3cd1f9900eff80ed20c2925adf396
 U drh
-Z 3dbbf934a5d9b8a10bcf167378c57366
+Z 09f39e38571ac1460392187d00e1cd29
index db49aee2450b63ce326ef22bb514ce02506f083c..b58849cc035be7e6f81676bcb77614df1ceb8db4 100644 (file)
@@ -1 +1 @@
-62a7353d4af4886b1561832e8b36e8e788b38834
\ No newline at end of file
+97b348a5ad2f090ba7a75467b97c6dfb575df09c
\ No newline at end of file
index f27db280adac49b1bb914affa0d4be95b053553a..5985c4a085f1f0f298c9facf77b6c5e62a4cc736 100644 (file)
@@ -12,7 +12,7 @@
 ** This file contains C code routines that are called by the parser
 ** to handle SELECT statements in SQLite.
 **
-** $Id: select.c,v 1.250 2005/06/06 21:19:57 drh Exp $
+** $Id: select.c,v 1.251 2005/06/12 12:01:19 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -1690,7 +1690,7 @@ static int multiSelect(
       iCont = sqlite3VdbeMakeLabel(v);
       sqlite3VdbeAddOp(v, OP_Rewind, tab1, iBreak);
       computeLimitRegisters(pParse, p);
-      iStart = sqlite3VdbeAddOp(v, OP_FullKey, tab1, 0);
+      iStart = sqlite3VdbeAddOp(v, OP_RowKey, tab1, 0);
       sqlite3VdbeAddOp(v, OP_NotFound, tab2, iCont);
       rc = selectInnerLoop(pParse, p, p->pEList, tab1, p->pEList->nExpr,
                              p->pOrderBy, -1, eDest, iParm, 
index dcc8492b640786363c2d08951abba5e0286caf67..2653205d00be64e4e94d635b480d76ec01ceedd0 100644 (file)
@@ -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.467 2005/06/06 17:27:19 drh Exp $
+** $Id: vdbe.c,v 1.468 2005/06/12 12:01:19 drh Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -3078,6 +3078,7 @@ case OP_PutStrKey: {        /* no-push */
     i64 nKey; 
     i64 iKey;
     if( pOp->opcode==OP_PutStrKey ){
+assert( pNos->flags & MEM_Blob );
       Stringify(pNos, db->enc);
       nKey = pNos->n;
       zKey = pNos->z;
@@ -3252,6 +3253,7 @@ case OP_RowData: {
       sqlite3BtreeKeySize(pCrsr, &n64);
       n = n64;
     }else{
+assert( pC->intKey );
       sqlite3BtreeDataSize(pCrsr, &n);
     }
     pTos->n = n;
@@ -3266,8 +3268,10 @@ case OP_RowData: {
       pTos->z = z;
     }
     if( pC->keyAsData || pOp->opcode==OP_RowKey ){
+assert( !pC->intKey );
       sqlite3BtreeKey(pCrsr, 0, n, pTos->z);
     }else{
+assert( pC->intKey );
       sqlite3BtreeData(pCrsr, 0, n, pTos->z);
     }
 #ifndef SQLITE_OMIT_TRIGGER
@@ -3317,58 +3321,6 @@ case OP_Recno: {
   break;
 }
 
-#ifndef SQLITE_OMIT_COMPOUND_SELECT
-/* Opcode: FullKey P1 * *
-**
-** Extract the complete key from the record that cursor P1 is currently
-** pointing to and push the key onto the stack as a string.
-**
-** Compare this opcode to Recno.  The Recno opcode extracts the first
-** 4 bytes of the key and pushes those bytes onto the stack as an
-** integer.  This instruction pushes the entire key as a string.
-**
-** This opcode may not be used on a pseudo-table.
-*/
-case OP_FullKey: {
-  int i = pOp->p1;
-  BtCursor *pCrsr;
-  Cursor *pC;
-
-  assert( i>=0 && i<p->nCursor );
-  assert( p->apCsr[i]!=0 );
-  assert( p->apCsr[i]->keyAsData );
-  assert( !p->apCsr[i]->pseudoTable );
-  pTos++;
-  pTos->flags = MEM_Null;
-  if( (pCrsr = (pC = p->apCsr[i])->pCursor)!=0 ){
-    i64 amt;
-    char *z;
-
-    rc = sqlite3VdbeCursorMoveto(pC);
-    if( rc ) goto abort_due_to_error;
-    assert( pC->intKey==0 );
-    sqlite3BtreeKeySize(pCrsr, &amt);
-    if( amt<=0 ){
-      rc = SQLITE_CORRUPT;
-      goto abort_due_to_error;
-    }
-    if( amt>NBFS ){
-      z = sqliteMallocRaw( amt );
-      if( z==0 ) goto no_mem;
-      pTos->flags = MEM_Blob | MEM_Dyn;
-      pTos->xDel = 0;
-    }else{
-      z = pTos->zShort;
-      pTos->flags = MEM_Blob | MEM_Short;
-    }
-    sqlite3BtreeKey(pCrsr, 0, amt, z);
-    pTos->z = z;
-    pTos->n = amt;
-  }
-  break;
-}
-#endif
-
 /* Opcode: NullRow P1 * *
 **
 ** Move the cursor P1 to a null row.  Any OP_Column operations