]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix up a couple of little things in the vdbe. select1.test passes now. (CVS 1351)
authordanielk1977 <danielk1977@noemail.net>
Tue, 11 May 2004 04:54:49 +0000 (04:54 +0000)
committerdanielk1977 <danielk1977@noemail.net>
Tue, 11 May 2004 04:54:49 +0000 (04:54 +0000)
FossilOrigin-Name: 9ba0df4d7792dccb67782113751c0e5807348d62

manifest
manifest.uuid
src/vdbe.c

index da476388fc219e4a8d7533fc8e63b35cda30fb42..95175d67b797091e04da9b649949c1f29e00069d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Internal\ssymbols\sMEM_Dyn\sand\sMEM_AggCtx\swere\sdefined\sas\sthe\ssame\sbit\spattern.\r\nChange\sMEM_AggCtx\sto\s0x1000.\s(CVS\s1350)
-D 2004-05-11T03:11:22
+C Fix\sup\sa\scouple\sof\slittle\sthings\sin\sthe\svdbe.\sselect1.test\spasses\snow.\s(CVS\s1351)
+D 2004-05-11T04:54:49
 F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a
 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@@ -63,7 +63,7 @@ F src/update.c 6ca82fc4a0fb4d7f134e961921c906f6f3c8bc74
 F src/utf.c fc799748d43fe1982d157b871e3e420a19c85d4f
 F src/util.c 74ee316594f68c41aed1884d737ab4085d479455
 F src/vacuum.c c134702e023db8778e6be59ac0ea7b02315b5476
-F src/vdbe.c f2094463b65008ff5b21efb8fa9488166708415f
+F src/vdbe.c 7ac68210a0cba08918ec62fb2aa6c9c8b5354a7d
 F src/vdbe.h 2dc4d1161b64f5684faa6a2d292e318a185ecb2e
 F src/vdbeInt.h ff85e432a43eb7533b17c9cece2baaf813ba8711
 F src/vdbeaux.c 7162f1390620257e25070da1ac2b4ec83e472752
@@ -188,7 +188,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
 F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
 F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P 7bc4f5543fbfa9f3fe6e9479a1f85fbaf6c95af4
-R a586015bc362ba74ddb676fd35378098
+P 2fffd133a5e0058f02c20c498875093261e9ee19
+R d171f27f9b6b82ac42b288cfd79095c1
 U danielk1977
-Z 6aa192c3ea0001cf7f147266d1b89473
+Z db84b4c7f4e2ad4c5507de4c7ea2b708
index ee07202675993b791045e69e6e76c24b2eb2fba3..50adf8181adef9e86332f7301c69e293cf64eb43 100644 (file)
@@ -1 +1 @@
-2fffd133a5e0058f02c20c498875093261e9ee19
\ No newline at end of file
+9ba0df4d7792dccb67782113751c0e5807348d62
\ No newline at end of file
index 770706813ecc4755ac49806579a12470bfb7dca9..b7d0f1559b073c8c231d5791752df35580347c9e 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.276 2004/05/11 02:10:07 danielk1977 Exp $
+** $Id: vdbe.c,v 1.277 2004/05/11 04:54:49 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -2734,7 +2734,7 @@ case OP_OpenTemp: {
     /* If a transient index is required, create it by calling
     ** sqlite3BtreeCreateTable() with the BTREE_ZERODATA flag before
     ** opening it. If a transient table is required, just use the
-    ** automatically created table with root-page 1.
+    ** automatically created table with root-page 1 (an INTKEY table).
     */
     if( pOp->p2 ){
       int pgno;
@@ -2745,6 +2745,7 @@ case OP_OpenTemp: {
       }
     }else{
       rc = sqlite3BtreeCursor(pCx->pBt, MASTER_ROOT, 1, 0, 0, &pCx->pCursor);
+      pCx->intKey = 1;
     }
   }
   break;
@@ -3208,19 +3209,18 @@ case OP_PutStrKey: {
       assert( pNos->flags & MEM_Int );
 
       /* If the table is an INTKEY table, set nKey to the value of
-      ** the integer key, and zKey to NULL.
+      ** the integer key, and zKey to NULL. Otherwise, set nKey to
+      ** sizeof(i64) and point zKey at iKey. iKey contains the integer
+      ** key in the on-disk byte order.
       */
+      iKey = intToKey(pNos->i);
       if( pC->intKey ){
         nKey = intToKey(pNos->i);
-        assert( keyToInt(nKey)==pNos->i );
         zKey = 0;
       }else{
-        /* TODO: can this happen? zKey is not correctly byte-ordered here! */
-        assert(!"TODO");
         nKey = sizeof(i64);
         zKey = (char*)&iKey;
       }
-      iKey = pNos->i;
 
       if( pOp->p2 & OPFLAG_NCHANGE ) db->nChange++;
       if( pOp->p2 & OPFLAG_LASTROWID ) db->lastRowid = pNos->i;
@@ -3427,7 +3427,10 @@ case OP_Column: {
     if( pC->nullRow ){
       payloadSize = 0;
     }else if( pC->keyAsData ){
-      /* TODO: sqlite3BtreeKeySize(pCrsr, &payloadSize); */
+      assert( !pC->intKey );
+      u64 pl64;
+      sqlite3BtreeKeySize(pCrsr, &pl64);
+      payloadSize = pl64;
     }else{
       sqlite3BtreeDataSize(pCrsr, &payloadSize);
     }