Home | History | Annotate | Download | only in dist

Lines Matching refs:opcode

1159 ** integer opcode.  The third argument is a generic pointer intended to
1239 ** The [SQLITE_FCNTL_LOCKSTATE] opcode is used for debugging. This
1240 ** opcode causes the xFileControl method to write the current state of
1247 ** The [SQLITE_FCNTL_SIZE_HINT] opcode is used by SQLite to give the VFS
1254 ** The [SQLITE_FCNTL_CHUNK_SIZE] opcode is used to request that the VFS
7703 ** A single instruction of the virtual machine has an opcode
7708 u8 opcode; /* What operation to perform */
7758 u8 opcode; /* What operation to perform */
7824 ** header file that defines a number for each opcode used by the VDBE.
7974 /* The following opcode values are never used */
7980 ** comments following the "case" for each opcode in the vdbe.c
9542 ** the OP_MakeRecord opcode of the VDBE and is disassembled by the
9543 ** OP_Column opcode.
9699 ** Expr.op is the opcode. The integer parser token codes are reused
10038 u8 op, p5; /* Opcode and P5 of the opcode that ends the loop */
10039 int p1, p2; /* Operands of the opcode used to ends the loop */
10178 #define SF_UsesEphemeral 0x0008 /* Uses the OpenEphemeral opcode */
12034 ** OP_IsUnique opcode on this cursor. */
12275 Mem *aVar; /* Values for the OP_Variable opcode. */
19281 ** Because the OP_NewRowid opcode in the VDBE depends on having a very
21579 ** It uses the RDTSC opcode to read the cycle count value out of the
23109 ** It uses the RDTSC opcode to read the cycle count value out of the
29558 ** It uses the RDTSC opcode to read the cycle count value out of the
32720 ** by 0, 1, or 3 operands, depending on the opcode. Another
32721 ** opcode follows immediately after the last operand.
32724 ** "halt" opcode and causes the test to end.
32735 ** Opcode 5 works on the linear array only, not on the Bitvec.
32736 ** Opcode 5 is used to deliberately induce a fault in order to
41271 /* This routine is only called from the OP_JournalMode opcode, and
46003 ** such as is generated by the OP_MakeRecord opcode. Unpack the
55438 ** op The opcode for this instruction
55460 pOp->opcode = (u8)op;
55490 ** Add an opcode that includes the p4 value as a pointer.
55493 Vdbe *p, /* Add the opcode to this VM */
55494 int op, /* The new opcode */
55507 ** Add an opcode that includes the p4 value as an integer.
55510 Vdbe *p, /* Add the opcode to this VM */
55511 int op, /* The new opcode */
55671 int opcode = pOp->opcode;
55672 if( opcode==OP_Destroy || opcode==OP_VUpdate || opcode==OP_VRename
55674 || (opcode==OP_FkCounter && pOp->p1==0 && pOp->p2==1)
55676 || ((opcode==OP_Halt || opcode==OP_HaltIfNull)
55702 ** to an OP_Function, OP_AggStep or OP_VFilter opcode. This is used by
55714 u8 opcode = pOp->opcode;
55716 pOp->opflags = sqlite3OpcodeProperty[opcode];
55717 if( opcode==OP_Function || opcode==OP_AggStep ){
55719 }else if( opcode==OP_Transaction && pOp->p2!=0 ){
55722 }else if( opcode==OP_VUpdate ){
55724 }else if( opcode==OP_VFilter ){
55727 assert( pOp[-1].opcode==OP_Integer );
55793 pOut->opcode = pIn->opcode;
55795 if( p2<0 && (sqlite3OpcodeProperty[pOut->opcode] & OPFLG_JUMP)!=0 ){
55973 pOp->opcode = OP_Noop;
56108 ** Return the opcode for a given address. If the address is -1, then
56109 ** return the most recently inserted opcode.
56112 ** routine, then a pointer to a dummy VdbeOp will be returned. That opcode
56114 ** The return of a dummy opcode allows the call to continue functioning
56116 ** this routine is a valid pointer. But because the dummy.opcode is 0,
56150 ** Compute a string that describes the P4 parameter for an opcode.
56274 ** Print a single opcode. This routine is used for debugging only.
56283 sqlite3OpcodeName(pOp->opcode), pOp->p1, pOp->p2, pOp->p3, zP4, pOp->p5,
56338 ** allocated by the OP_Program opcode in sqlite3VdbeExec().
56383 /* Even though this opcode does not use dynamic strings for
56424 }while( i<nRow && p->explain==2 && p->aOp[i].opcode!=OP_Explain );
56441 ** pick up the appropriate opcode. */
56456 pMem->z = (char*)sqlite3OpcodeName(pOp->opcode); /* Opcode */
56463 /* When an OP_Program opcode is encounter (the only opcode that has
56558 if( pOp->opcode==OP_Trace && pOp->p4.z!=0 ){
56576 if( pOp->opcode==OP_Trace && pOp->p4.z!=0 ){
56668 /* There should be at least one opcode.
56707 ** end of the opcode array. If we are unable to satisfy all memory
56708 ** requirements by reusing the opcode array tail, then the second
56712 ** the leftover space at the end of the opcode array can significantly
57603 fprintf(out, "%02x", p->aOp[i].opcode);
58148 ** created by th OP_MakeRecord opcode of the VDBE. The pPKey2
58230 ** This is used by the OP_IsUnique opcode.
58271 ** pCur points at an index entry created using the OP_MakeRecord opcode.
59631 if( pOp->opcode==OP_Variable ){
59830 ** statement for the corresponding OP_Variable opcode. Once the host
59941 ** a linear sequence of operations. Each operation has an opcode
59999 ** The next global variable is incremented each type the OP_Sort opcode
60011 ** or MEM_Str that has been used by a VDBE opcode. The test procedures
60026 ** The next global variable is incremented each type the OP_Found opcode
60400 ** It uses the RDTSC opcode to read the cycle count value out of the
60572 u64 start; /* CPU clock count at start of opcode */
60573 int origPc; /* Program counter at start of opcode */
60647 int p1; /* P1 value of the opcode */
60790 int op; /* Opcode for update hook: SQLITE_UPDATE or SQLITE_INSERT */
61060 /* On any opcode with the "out2-prerelase" tag, free any
61065 assert( pOp->opflags==sqlite3OpcodeProperty[pOp->opcode] );
61107 switch( pOp->opcode ){
61122 ** opcode and the opcodes.c file is filled with an array of strings where
61123 ** each string is the symbolic name for the corresponding opcode. If the
61125 ** that comment is used to determine the particular value of the opcode.
61133 ** for lines of that contain "Opcode:". That line and all subsequent
61134 ** comment lines are used in the generation of the opcode.html documentation
61144 /* Opcode: Goto * P2 * * *
61157 /* Opcode: Gosub P1 P2 * * *
61173 /* Opcode: Return P1 * * * *
61184 /* Opcode: Yield P1 * * * *
61202 /* Opcode: HaltIfNull P1 P2 P3 P4 *
61214 /* Opcode: Halt P1 P2 * P4 *
61278 /* Opcode: Integer P1 P2 * * *
61287 /* Opcode: Int64 * P2 * P4 *
61299 /* Opcode: Real * P2 * P4 *
61312 /* Opcode: String8 * P2 * P4 *
61314 ** P4 points to a nul terminated UTF-8 string. This opcode is transformed
61319 pOp->opcode = OP_String;
61346 /* Opcode: String P1 P2 * P4 *
61360 /* Opcode: Null * P2 * * *
61370 /* Opcode: Blob P1 P2 * P4
61383 /* Opcode: Variable P1 P2 * P4 *
61405 /* Opcode: Move P1 P2 P3 * *
61444 /* Opcode: Copy P1 P2 * * *
61461 /* Opcode: SCopy P1 P2 * * *
61485 /* Opcode: ResultRow P1 P2 * * *
61488 ** results. This opcode causes the sqlite3_step() call to terminate
61512 ** DML statements invoke this opcode to return the number of rows
61514 ** opens a statement transaction may invoke this opcode.
61558 /* Opcode: Concat P1 P2 P3 * *
61607 /* Opcode: Add P1 P2 P3 * *
61613 /* Opcode: Multiply P1 P2 P3 * *
61620 /* Opcode: Subtract P1 P2 P3 * *
61626 /* Opcode: Divide P1 P2 P3 * *
61633 /* Opcode: Remainder P1 P2 P3 * *
61663 switch( pOp->opcode ){
61692 switch( pOp->opcode ){
61732 /* Opcode: CollSeq * * P4
61740 ** to retrieve the collation sequence set by this opcode is not available
61748 /* Opcode: Function P1 P2 P3 P4 P5
61760 ** invocation of this opcode.
61816 assert( pOp[-1].opcode==OP_CollSeq );
61856 /* Opcode: BitAnd P1 P2 P3 * *
61862 /* Opcode: BitOr P1 P2 P3 * *
61868 /* Opcode: ShiftLeft P1 P2 P3 * *
61875 /* Opcode: ShiftRight P1 P2 P3 * *
61900 switch( pOp->opcode ){
61904 default: assert( pOp->opcode==OP_ShiftRight );
61912 /* Opcode: AddImm P1 P2 * * *
61927 /* Opcode: MustBeInt P1 P2 * * *
61951 /* Opcode: RealAffinity P1 * * * *
61955 ** This opcode is used when extracting information from a column that
61970 /* Opcode: ToText P1 * * * *
61993 /* Opcode: ToBlob P1 * * * *
62016 /* Opcode: ToNumeric P1 * * * *
62033 /* Opcode: ToInt P1 * * * *
62051 /* Opcode: ToReal P1 * * * *
62070 /* Opcode: Lt P1 P2 P3 P4 P5
62084 ** back into the input registers P1 and P3. So this opcode can cause
62100 /* Opcode: Ne P1 P2 P3 P4 P5
62102 ** This works just like the Lt opcode except that the jump is taken if
62103 ** the operands in registers P1 and P3 are not equal. See the Lt opcode for
62112 /* Opcode: Eq P1 P2 P3 P4 P5
62114 ** This works just like the Lt opcode except that the jump is taken if
62116 ** See the Lt opcode for additional information.
62124 /* Opcode: Le P1 P2 P3 P4 P5
62126 ** This works just like the Lt opcode except that the jump is taken if
62128 ** register P1. See the Lt opcode for additional information.
62130 /* Opcode: Gt P1 P2 P3 P4 P5
62132 ** This works just like the Lt opcode except that the jump is taken if
62134 ** register P1. See the Lt opcode for additional information.
62136 /* Opcode: Ge P1 P2 P3 P4 P5
62138 ** This works just like the Lt opcode except that the jump is taken if
62140 ** register P1. See the Lt opcode for additional information.
62166 assert( pOp->opcode==OP_Eq || pOp->opcode==OP_Ne );
62196 switch( pOp->opcode ){
62221 /* Opcode: Permutation * * * P4 *
62237 /* Opcode: Compare P1 P2 P3 P4 *
62299 /* Opcode: Jump P1 P2 P3 * *
62316 /* Opcode: And P1 P2 P3 * *
62325 /* Opcode: Or P1 P2 P3 * *
62353 if( pOp->opcode==OP_And ){
62370 /* Opcode: Not P1 P2 * * *
62387 /* Opcode: BitNot P1 P2 * * *
62404 /* Opcode: If P1 P2 P3 * *
62410 /* Opcode: IfNot P1 P2 P3 * *
62430 if( pOp->opcode==OP_IfNot ) u.al.c = !u.al.c;
62438 /* Opcode: IsNull P1 P2 * * *
62450 /* Opcode: NotNull P1 P2 * * *
62462 /* Opcode: Column P1 P2 P3 P4 P5
62465 ** the MakeRecord instruction. (See the MakeRecord opcode for additional
62485 int p1; /* P1 value of the opcode */
62768 /* Opcode: Affinity P1 P2 * P4 *
62796 /* Opcode: MakeRecord P1 P2 P3 P4 *
62800 ** in an index. The OP_Column opcode can decode the record later.
62878 /* Only pure zero-filled BLOBs can be input to this Opcode.
62931 /* Opcode: Count P1 P2 * * *
62954 /* Opcode: Savepoint P1 * * P4 *
63106 /* Opcode: AutoCommit P1 P2 * * *
63179 /* Opcode: Transaction P1 P2 * * *
63182 ** opcode is encountered. Depending on the ON CONFLICT setting, the
63250 /* Opcode: ReadCookie P1 P2 P3 * *
63281 /* Opcode: SetCookie P1 P2 P3 * *
63289 ** A transaction must be started before executing this opcode.
63321 /* Opcode: VerifyCookie P1 P2 *
63334 ** to be executed (to establish a read lock) before this opcode is
63376 /* Opcode: OpenRead P1 P2 P3 P4 P5
63406 /* Opcode: OpenWrite P1 P2 P3 P4 P5
63452 if( pOp->opcode==OP_OpenWrite ){
63468 /* The u.aw.p2 value always comes from a prior OP_CreateTable opcode and
63469 ** that opcode will always set the u.aw.p2 value to 2 or more or else fail.
63511 /* Opcode: OpenEphemeral P1 P2 * P4 *
63523 ** This opcode was once called OpenTemp. But that created
63526 ** this opcode. Then this opcode was call OpenVirtual. But
63529 /* Opcode: OpenAutoindex P1 P2 * P4 *
63531 ** This opcode works the same as OP_OpenEphemeral. It has a
63533 ** by this opcode will be used for automatically created transient
63585 /* Opcode: OpenPseudo P1 P2 P3 * *
63592 ** A pseudo-table created by this opcode is used to hold a single
63594 ** individual columns using the OP_Column opcode. The OP_Column opcode
63595 ** is the only cursor opcode that works with a pseudo-table.
63615 /* Opcode: Close P1 * * * *
63627 /* Opcode: SeekGe P1 P2 P3 P4 *
63640 /* Opcode: SeekGt P1 P2 P3 P4 *
63653 /* Opcode: SeekLt P1 P2 P3 P4 *
63666 /* Opcode: SeekLe P1 P2 P3 P4 *
63702 u.az.oc = pOp->opcode;
63833 /* Opcode: Seek P1 P2 * * *
63862 /* Opcode: Found P1 P2 P3 P4 *
63872 /* Opcode: NotFound P1 P2 P3 P4 *
63940 if( pOp->opcode==OP_Found ){
63948 /* Opcode: IsUnique P1 P2 P3 P4 *
64037 /* Opcode: NotExists P1 P2 P3 * *
64092 /* Opcode: Sequence P1 P2 * * *
64107 /* Opcode: NewRowid P1 P2 P3 * *
64259 /* Opcode: Insert P1 P2 P3 P4 P5
64276 ** currently pointing to. Presumably, the prior OP_NotExists opcode
64280 ** If the OPFLAG_ISUPDATE flag is set, then this opcode is part of an
64281 ** UPDATE operation. Otherwise (if the flag is clear) then this opcode
64298 /* Opcode: InsertInt P1 P2 P3 P4 P5
64314 int op; /* Opcode for update hook: SQLITE_UPDATE or SQLITE_INSERT */
64327 if( pOp->opcode==OP_Insert ){
64334 assert( pOp->opcode==OP_InsertInt );
64373 /* Opcode: Delete P1 P2 * P4 *
64391 ** using OP_NotFound prior to invoking this opcode.
64414 /* The OP_Delete opcode always follows an OP_NotExists or OP_Last or
64439 /* Opcode: ResetCount * * * * *
64452 /* Opcode: RowData P1 P2 * * *
64462 /* Opcode: RowKey P1 P2 * * *
64487 assert( u.bh.pC->isTable || pOp->opcode==OP_RowKey );
64488 assert( u.bh.pC->isIndex || pOp->opcode==OP_RowData );
64535 /* Opcode: Rowid P1 P2 * * *
64541 ** be a separate OP_VRowid opcode for use with virtual tables, but this
64542 ** one opcode now works for both table types.
64584 /* Opcode: NullRow P1 * * * *
64606 /* Opcode: Last P1 P2 * * *
64641 /* Opcode: Sort P1 P2 * * *
64643 ** This opcode does exactly the same thing as OP_Rewind except that
64648 ** end. We use the OP_Sort opcode instead of OP_Rewind to do the
64661 /* Opcode: Rewind P1 P2 * * *
64695 /* Opcode: Next P1 P2 * * P5
64709 /* Opcode: Prev P1 P2 * * P5
64743 rc = pOp->opcode==OP_Next ? sqlite3BtreeNext(u.bm.pCrsr, &u.bm.res) :
64758 /* Opcode: IdxInsert P1 P2 P3 * P5
64761 ** MakeRecord instructions. This opcode writes that key
64800 /* Opcode: IdxDelete P1 P2 P3 * *
64803 ** an unpacked index key. This opcode removes that entry from the
64838 /* Opcode: IdxRowid P1 P2 * * *
64875 /* Opcode: IdxGE P1 P2 P3 P4 P5
64885 ** prior to the comparison. This make the opcode work like IdxGT except
64889 /* Opcode: IdxLT P1 P2 P3 P4 P5
64899 ** to the comparison. This makes the opcode work like IdxLE.
64929 if( pOp->opcode==OP_IdxLT ){
64932 assert( pOp->opcode==OP_IdxGE );
64942 /* Opcode: Destroy P1 P2 P3 * *
65000 /* Opcode: Clear P1 P2 P3
65039 /* Opcode: CreateTable P1 P2 * * *
65052 /* Opcode: CreateIndex P1 P2 * * *
65074 if( pOp->opcode==OP_CreateTable ){
65085 /* Opcode: ParseSchema P1 P2 * P4 *
65094 ** This opcode invokes the parser to create a new virtual machine,
65095 ** then runs the new virtual machine. It is thus a re-entrant opcode.
65108 /* If pOp->p2 is 0, then this opcode is being executed to read a
65160 /* Opcode: LoadAnalysis P1 * * * *
65173 /* Opcode: DropTable P1 * * P4 *
65185 /* Opcode: DropIndex P1 * * P4 *
65197 /* Opcode: DropTrigger P1 * * P4 *
65211 /* Opcode: IntegrityCk P1 P2 P3 * P5
65229 ** This opcode is used to implement the integrity_check pragma.
65274 /* Opcode: RowSetAdd P1 P2 * * *
65293 /* Opcode: RowSetRead P1 P2 P3 * *
65318 /* Opcode: RowSetTest P1 P2 P3 P4
65324 ** next opcode.
65380 /* Opcode: Program P1 P2 P3 P4 *
65496 /* Opcode: Param P1 P2 * * *
65498 ** This opcode is only ever present in sub-programs called via the
65522 /* Opcode: FkCounter P1 P2 * * *
65538 /* Opcode: FkIfZero P1 P2 * * *
65540 ** This opcode tests if a foreign key constraint-counter is currently zero.
65560 /* Opcode: MemMax P1 P2 * * *
65592 /* Opcode: IfPos P1 P2 * * *
65608 /* Opcode: IfNeg P1 P2 * * *
65624 /* Opcode: IfZero P1 P2 P3 * *
65642 /* Opcode: AggStep * P2 P3 P4 P5
65687 assert( pOp[-1].opcode==OP_CollSeq );
65699 /* Opcode: AggFinal P1 P2 * P4 *
65706 ** argument is not used by this opcode. It is only there to disambiguate
65731 /* Opcode: Checkpoint P1 * * * *
65743 /* Opcode: JournalMode P1 P2 P3 * P5
65774 /* This opcode is used in two places: PRAGMA journal_mode and ATTACH.
65867 /* Opcode: Vacuum * * * * *
65869 ** Vacuum the entire database. This opcode will cause other virtual
65880 /* Opcode: IncrVacuum P1 P2 * * *
65903 /* Opcode: Expire P1 * * * *
65922 /* Opcode: TableLock P1 P2 P3 P4 *
65954 /* Opcode: VBegin * * * P4 *
65975 /* Opcode: VCreate P1 * * P4 *
65987 /* Opcode: VDestroy P1 * * P4 *
66001 /* Opcode: VOpen P1 * * P4 *
66004 ** P1 is a cursor number. This opcode opens a cursor to the virtual
66041 /* Opcode: VFilter P1 P2 P3 P4 *
66050 ** This opcode invokes the xFilter method on the virtual table specified
66117 /* Opcode: VColumn P1 P2 P3 * *
66176 /* Opcode: VNext P1 P2 * * *
66223 /* Opcode: VRename P1 * * P4 *
66226 ** This opcode invokes the corresponding xRename method. The value
66250 /* Opcode: VUpdate P1 P2 P3 P4 *
66253 ** This opcode invokes the corresponding xUpdate method. P2 values
66311 /* Opcode: Pagecount P1 P2 * * *
66323 /* Opcode: MaxPgcnt P1 P2 P3 * *
66348 /* Opcode: Trace * * * P4 *
66376 /* Opcode: Noop * * * * *
66382 ** The magic Explain opcode are only inserted when explain==2 (which
66384 ** This opcode records information from the optimizer. It is the
66388 assert( pOp->opcode==OP_Noop || pOp->opcode==OP_Explain );
68727 ** set and the opcode is changed from TK_FUNCTION to TK_AGG_FUNCTION.
68995 ** opcode (OP_Eq, OP_Ge etc.) used to compare pExpr1 and pExpr2.
69044 int opcode, /* The comparison opcode */
69055 addr = sqlite3VdbeAddOp4(pParse->pVdbe, opcode, in2, dest, in1,
69180 int op, /* Expression opcode */
69227 int op, /* Expression opcode */
69280 int op, /* Expression opcode */
71064 int op; /* The opcode being coded */
71487 /* If the opcode is TK_TRIGGER, then the expression is a reference
71494 ** The expression is implemented using an OP_Param opcode. The p1
71960 ** are the same as opcode values (ex: OP_Eq) that implement the corresponding
73435 ** because the OpenWrite opcode below will be needing it. */
76763 ** "OP_Destroy 4 0" opcode. The subsequent "OP_Destroy 5 0" would hit
77162 /* The registers accessed by the OP_IsUnique opcode were allocated
77167 ** opcode use the values stored within seems dangerous. However, since
82446 int opcode /* OP_OpenRead or OP_OpenWrite */
82451 assert( opcode==OP_OpenWrite || opcode==OP_OpenRead );
82452 sqlite3TableLock(p, iDb, pTab->tnum, (opcode==OP_OpenWrite)?1:0, pTab->zName);
82453 sqlite3VdbeAddOp3(v, opcode, iCur, pTab->tnum, iDb);
82507 ** Set P4 of the most recently inserted opcode to a column affinity
82568 if( pOp->opcode==OP_OpenRead && pOp->p3==iDb ){
82581 if( pOp->opcode==OP_VOpen && pOp->p4.pVtab==pVTab ){
83304 /* The row that the VUpdate opcode will delete: none */
83316 if( ALWAYS(pOp) && pOp->opcode==OP_Null && !IsVirtual(pTab) ){
83318 pOp->opcode = OP_NewRowid;
85698 ** compiler (eg. count_changes). So add an opcode to expire all
87021 ** This routine is also called from the OP_ParseSchema opcode of the VDBE.
87608 "addr", "opcode", "p1", "p2", "p3", "p4", "p5", "comment",
88584 ** freed. Add the KeyInfo structure to the P4 field of an opcode using
89848 ** Then the OP_ResultRow opcode is used to cause sqlite3_step() to
91367 ** Invoke the OP_AggFinalize opcode for every aggregate function
91465 ** opcode) for each row in the result set.
92821 u8 op, /* Trigger opcode */
93412 /* Code the OP_Program opcode in the parent VDBE. P4 of the OP_Program
94325 ** This routine implements the OP_Vacuum opcode of the VDBE.
96166 int op; /* Opcode of pRight */
98435 ** Code an OP_Affinity opcode to apply the column affinity string zAff
98465 /* Code the OP_Affinity opcode if there is anything left to do. */
98730 WhereLevel *pLevel, /* Scan to write OP_Explain opcode for */
99066 int op; /* Instruction opcode */
99257 ** Gosub opcode and jumps straight to the code generated by WhereEnd().
100178 if( pOp->opcode==OP_Column ){
100188 }else if( pOp->opcode==OP_Rowid ){
100190 pOp->opcode = OP_IdxRowid;