Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Additions and corrections to vdbe documentation comments. (CVS 992) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b648987de3383d6835df58aa0efee54f |
User & Date: | jplyon 2003-06-02 06:15:59.000 |
Context
2003-06-02
| ||
06:17 | Added comments. (CVS 993) (check-in: 1276ddb307 user: jplyon tags: trunk) | |
06:15 | Additions and corrections to vdbe documentation comments. (CVS 992) (check-in: b648987de3 user: jplyon tags: trunk) | |
2003-06-01
| ||
01:10 | Add the ability to INSERT or UPDATE using the "rowid" column even on tables that lack an integer primary key. (CVS 991) (check-in: 903adbe802 user: drh tags: trunk) | |
Changes
Changes to src/vdbe.c.
︙ | ︙ | |||
32 33 34 35 36 37 38 | ** ** 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. ** | | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | ** ** 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.224 2003/06/02 06:15:59 jplyon Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** The makefile scans this source file and creates the following ** array of string constants which are the names of all VDBE opcodes. |
︙ | ︙ | |||
3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 | ** ** See also OpenWrite. */ /* Opcode: OpenWrite P1 P2 P3 ** ** Open a read/write cursor named P1 on the table or index whose root ** page is P2. If P2==0 then take the root page number from the stack. ** ** This instruction works just like OpenRead except that it opens the cursor ** in read/write mode. For a given table, there can be one or more read-only ** cursors or a single read/write cursor but not both. ** ** See also OpenRead. */ | > > > > > | 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 | ** ** See also OpenWrite. */ /* Opcode: OpenWrite P1 P2 P3 ** ** Open a read/write cursor named P1 on the table or index whose root ** page is P2. If P2==0 then take the root page number from the stack. ** ** The P3 value is the name of the table or index being opened. ** The P3 value is not actually used by this opcode and may be ** omitted. But the code generator usually inserts the index or ** table name into P3 to make the code easier to read. ** ** This instruction works just like OpenRead except that it opens the cursor ** in read/write mode. For a given table, there can be one or more read-only ** cursors or a single read/write cursor but not both. ** ** See also OpenRead. */ |
︙ | ︙ | |||
3886 3887 3888 3889 3890 3891 3892 | aStack[p->tos].i = v; aStack[p->tos].flags = STK_Int; break; } /* Opcode: PutIntKey P1 P2 * ** | | | | 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 | aStack[p->tos].i = v; aStack[p->tos].flags = STK_Int; break; } /* Opcode: PutIntKey P1 P2 * ** ** Write an entry into the table of cursor P1. A new entry is ** created if it doesn't already exist or the data for an existing ** entry is overwritten. The data is the value on the top of the ** stack. The key is the next value down on the stack. The key must ** be an integer. The stack is popped twice by this instruction. ** ** If P2==1 then the row change count is incremented. If P2==0 the ** row change count is unmodified. The rowid is stored for subsequent ** return by the sqlite_last_insert_rowid() function if P2 is 1. */ /* Opcode: PutStrKey P1 * * ** ** Write an entry into the table of cursor P1. A new entry is ** created if it doesn't already exist or the data for an existing ** entry is overwritten. The data is the value on the top of the ** stack. The key is the next value down on the stack. The key must ** be a string. The stack is popped twice by this instruction. ** ** P1 may not be a pseudo-table opened using the OpenPseudo opcode. */ |
︙ | ︙ | |||
4380 4381 4382 4383 4384 4385 4386 | } pC->recnoIsValid = 0; break; } /* Opcode: IdxPut P1 P2 P3 ** | | | | 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 | } pC->recnoIsValid = 0; break; } /* Opcode: IdxPut P1 P2 P3 ** ** The top of the stack holds a SQL index key made using the ** MakeIdxKey instruction. This opcode writes that key into the ** index P1. Data for the entry is nil. ** ** If P2==1, then the key must be unique. If the key is not unique, ** the program aborts with a SQLITE_CONSTRAINT error and the database ** is rolled back. If P3 is not null, then it becomes part of the ** error message returned with the SQLITE_CONSTRAINT. */ case OP_IdxPut: { int i = pOp->p1; int tos = p->tos; BtCursor *pCrsr; VERIFY( if( tos<0 ) goto not_enough_stack; ) |
︙ | ︙ | |||
4686 4687 4688 4689 4690 4691 4692 | pKeylist->aKey[pKeylist->nUsed++] = aStack[p->tos].i; POPSTACK; break; } /* Opcode: ListRewind * * * ** | | > | 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 | pKeylist->aKey[pKeylist->nUsed++] = aStack[p->tos].i; POPSTACK; break; } /* Opcode: ListRewind * * * ** ** Rewind the temporary buffer back to the beginning. This is ** now a no-op. */ case OP_ListRewind: { /* This is now a no-op */ break; } /* Opcode: ListRead * P2 * |
︙ | ︙ |