Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | More small changes to get test cases to execute. (CVS 1355) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
6dc6004684a97fbdba2f2dce94086dc2 |
User & Date: | danielk1977 2004-05-11 08:48:11.000 |
Context
2004-05-11
| ||
09:05 | Remove the unused upgrade_3_schema subroutine from main.c. (CVS 1356) (check-in: b5d2771ee0 user: drh tags: trunk) | |
08:48 | More small changes to get test cases to execute. (CVS 1355) (check-in: 6dc6004684 user: danielk1977 tags: trunk) | |
07:11 | Remove code dealing with old file formats. (CVS 1354) (check-in: dfde112116 user: danielk1977 tags: trunk) | |
Changes
Changes to src/main.c.
︙ | ︙ | |||
10 11 12 13 14 15 16 | ** ************************************************************************* ** Main file for the SQLite library. The routines in this file ** implement the programmer interface to the library. Routines in ** other files are for internal use by SQLite and should not be ** accessed by users of the library. ** | | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ** ************************************************************************* ** Main file for the SQLite library. The routines in this file ** implement the programmer interface to the library. Routines in ** other files are for internal use by SQLite and should not be ** accessed by users of the library. ** ** $Id: main.c,v 1.171 2004/05/11 08:48:11 danielk1977 Exp $ */ #include "sqliteInt.h" #include "os.h" #include <ctype.h> /* ** A pointer to this structure is used to communicate information |
︙ | ︙ | |||
264 265 266 267 268 269 270 | } /* Get the database meta information */ if( rc==SQLITE_OK ){ int i; for(i=0; rc==SQLITE_OK && i<SQLITE_N_BTREE_META; i++){ | | | 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 | } /* Get the database meta information */ if( rc==SQLITE_OK ){ int i; for(i=0; rc==SQLITE_OK && i<SQLITE_N_BTREE_META; i++){ rc = sqlite3BtreeGetMeta(db->aDb[iDb].pBt, i, &meta[i]); } if( rc ){ sqlite3SetString(pzErrMsg, sqlite3_error_string(rc), (char*)0); sqlite3BtreeCloseCursor(curMain); return rc; } }else{ |
︙ | ︙ |
Changes to src/pragma.c.
1 2 3 4 5 6 7 8 9 10 11 12 13 | /* ** 2003 April 6 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains code used to implement the PRAGMA command. ** | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /* ** 2003 April 6 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains code used to implement the PRAGMA command. ** ** $Id: pragma.c,v 1.22 2004/05/11 08:48:11 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** Interpret the given string as a boolean value. */ |
︙ | ︙ | |||
573 574 575 576 577 578 579 | { OP_MemStore, 0, 1, 0}, { OP_ColumnName, 0, 1, "integrity_check"}, }; /* Code to do an BTree integrity check on a single database file. */ static VdbeOpList checkDb[] = { | | | | 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 | { OP_MemStore, 0, 1, 0}, { OP_ColumnName, 0, 1, "integrity_check"}, }; /* Code to do an BTree integrity check on a single database file. */ static VdbeOpList checkDb[] = { { OP_SetInsert, 0, 0, "1"}, { OP_Integer, 0, 0, 0}, /* 1 */ { OP_OpenRead, 0, MASTER_ROOT, 0}, { OP_Rewind, 0, 7, 0}, /* 3 */ { OP_Column, 0, 3, 0}, /* 4 */ { OP_SetInsert, 0, 0, 0}, { OP_Next, 0, 4, 0}, /* 6 */ { OP_IntegrityCk, 0, 0, 0}, /* 7 */ { OP_Dup, 0, 1, 0}, { OP_String, 0, 0, "ok"}, |
︙ | ︙ |
Changes to src/vdbe.c.
︙ | ︙ | |||
39 40 41 42 43 44 45 | ** ** Various scripts scan this source file in order to generate HTML ** documentation, headers files, or other derived files. The formatting ** of the code in this file is, therefore, important. See other comments ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ** ** Various scripts scan this source file in order to generate HTML ** documentation, headers files, or other derived files. The formatting ** of the code in this file is, therefore, important. See other comments ** 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.280 2004/05/11 08:48:11 danielk1977 Exp $ */ #include "sqliteInt.h" #include "os.h" #include <ctype.h> #include "vdbeInt.h" /* |
︙ | ︙ | |||
2931 2932 2933 2934 2935 2936 2937 | /* Opcode: IsUnique P1 P2 * ** ** The top of the stack is an integer record number. Call this ** record number R. The next on the stack is an index key created ** using MakeIdxKey. Call it K. This instruction pops R from the ** stack but it leaves K unchanged. ** | | | | | | | > | | | | | | 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 | /* Opcode: IsUnique P1 P2 * ** ** The top of the stack is an integer record number. Call this ** record number R. The next on the stack is an index key created ** using MakeIdxKey. Call it K. This instruction pops R from the ** stack but it leaves K unchanged. ** ** P1 is an index. So all but the last eight bytes of K are an ** index string. The last eight bytes of K are a record number. ** ** This instruction asks if there is an entry in P1 where the ** index string matches K but the record number is different ** from R. If there is no such entry, then there is an immediate ** jump to P2. If any entry does exist where the index string ** matches K but the record number is not R, then the record ** number for that entry is pushed onto the stack and control ** falls through to the next instruction. ** ** See also: Distinct, NotFound, NotExists, Found */ case OP_IsUnique: { int i = pOp->p1; Mem *pNos = &pTos[-1]; Cursor *pCx; BtCursor *pCrsr; i64 R; /* Pop the value R off the top of the stack */ assert( pNos>=p->aStack ); Integerify(pTos); R = pTos->i; pTos--; assert( i>=0 && i<=p->nCursor ); pCx = &p->aCsr[i]; pCrsr = pCx->pCursor; if( pCrsr!=0 ){ int res, rc; i64 v; /* The record number on the P1 entry that matches K */ char *zKey; /* The value of K */ int nKey; /* Number of bytes in K */ /* Make sure K is a string and make zKey point to K */ Stringify(pNos); zKey = pNos->z; nKey = pNos->n; assert( nKey >= 8 ); /* Search for an entry in P1 where all but the last eight bytes match K. ** If there is no such entry, jump immediately to P2. */ assert( p->aCsr[i].deferredMoveto==0 ); assert( p->aCsr[i].intKey==0 ); rc = sqlite3BtreeMoveto(pCrsr, zKey, nKey-8, &res); if( rc!=SQLITE_OK ) goto abort_due_to_error; if( res<0 ){ rc = sqlite3BtreeNext(pCrsr, &res); if( res ){ pc = pOp->p2 - 1; break; } } /* FIX ME - the sqlite2BtreeKeyCompare() function is a temporary hack */ rc = sqlite2BtreeKeyCompare(pCrsr, zKey, nKey-8, 8, &res); if( rc!=SQLITE_OK ) goto abort_due_to_error; if( res>0 ){ pc = pOp->p2 - 1; break; } /* At this point, pCrsr is pointing to an entry in P1 where all but ** the last eight bytes of the key match K. Check to see if the last ** eight bytes of the key are different from R. If the last four ** bytes equal R then jump immediately to P2. */ sqlite3BtreeKey(pCrsr, nKey - sizeof(i64), sizeof(i64), (char*)&v); v = keyToInt(v); if( v==R ){ pc = pOp->p2 - 1; break; } /* The last four bytes of the key are different from R. Convert the |
︙ | ︙ |