Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Bug fix: updates within a transaction would fail if there was existed a temporary table. (CVS 425) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
02cc2d60b2a5ee50efdbd90df90810ba |
User & Date: | drh 2002-03-10 21:21:00.000 |
Context
2002-03-11
| ||
02:06 | Preparing for the 2.4.0 release. (CVS 426) (check-in: 9f5b241cb2 user: drh tags: trunk) | |
2002-03-10
| ||
21:21 | Bug fix: updates within a transaction would fail if there was existed a temporary table. (CVS 425) (check-in: 02cc2d60b2 user: drh tags: trunk) | |
2002-03-08
| ||
02:12 | Added prototypes to sqlite.h for sqlite_freemem(), sqlite_libversion() and sqlite_libencoding(). (CVS 424) (check-in: 145516c93b user: drh tags: trunk) | |
Changes
Changes to src/vdbe.c.
︙ | ︙ | |||
26 27 28 29 30 31 32 | ** type to the other occurs as necessary. ** ** Most of the code in this file is taken up by the sqliteVdbeExec() ** function which does the work of interpreting a VDBE program. ** But other routines are also provided to help in building up ** a program instruction by instruction. ** | | | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | ** type to the other occurs as necessary. ** ** Most of the code in this file is taken up by the sqliteVdbeExec() ** function which does the work of interpreting a VDBE program. ** But other routines are also provided to help in building up ** a program instruction by instruction. ** ** $Id: vdbe.c,v 1.134 2002/03/10 21:21:00 drh Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** The following global variable is incremented every time a cursor ** moves, either by the OP_MoveTo or the OP_Next opcode. The test |
︙ | ︙ | |||
2464 2465 2466 2467 2468 2469 2470 | ** is part of a larger transaction but which might need to be rolled back ** itself without effecting the containing transaction. A checkpoint will ** be automatically committed or rollback when the VDBE halts. */ case OP_Checkpoint: { rc = sqliteBtreeBeginCkpt(pBt); if( rc==SQLITE_OK && db->pBeTemp ){ | | | 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 | ** is part of a larger transaction but which might need to be rolled back ** itself without effecting the containing transaction. A checkpoint will ** be automatically committed or rollback when the VDBE halts. */ case OP_Checkpoint: { rc = sqliteBtreeBeginCkpt(pBt); if( rc==SQLITE_OK && db->pBeTemp ){ rc = sqliteBtreeBeginCkpt(db->pBeTemp); } break; } /* Opcode: Transaction * * * ** ** Begin a transaction. The transaction ends when a Commit or Rollback |
︙ | ︙ |
Changes to tool/lemon.c.
︙ | ︙ | |||
2752 2753 2754 2755 2756 2757 2758 | for(i=0; i<rp->nrhs; i++) used[i] = 0; lhsused = 0; /* Generate code to do the reduce action */ if( rp->code ){ fprintf(out,"#line %d \"%s\"\n{",rp->line,lemp->filename); for(cp=rp->code; *cp; cp++){ | | | | 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 | for(i=0; i<rp->nrhs; i++) used[i] = 0; lhsused = 0; /* Generate code to do the reduce action */ if( rp->code ){ fprintf(out,"#line %d \"%s\"\n{",rp->line,lemp->filename); for(cp=rp->code; *cp; cp++){ if( isalpha(*cp) && (cp==rp->code || (!isalnum(cp[-1]) && cp[-1]!='_')) ){ char saved; for(xp= &cp[1]; isalnum(*xp) || *xp=='_'; xp++); saved = *xp; *xp = 0; if( rp->lhsalias && strcmp(cp,rp->lhsalias)==0 ){ fprintf(out,"yygotominor.yy%d",rp->lhs->dtnum); cp = xp; lhsused = 1; }else{ |
︙ | ︙ |
Changes to tool/lempar.c.
︙ | ︙ | |||
197 198 199 200 201 202 203 | ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ | | | | 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void *ParseAlloc(void *(*mallocProc)(size_t)){ yyParser *pParser; pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); if( pParser ){ pParser->idx = -1; } return pParser; } /* The following function deletes the value associated with a |
︙ | ︙ |