Home | History | Annotate | Download | only in dist

Lines Matching refs:p4

7716   signed char p4type; /* One of the P4_xxx constants for p4 */
7736 } p4;
7775 #define P4_NOTUSED 0 /* The P4 parameter is not used */
7778 #define P4_COLLSEQ (-4) /* P4 is a pointer to a CollSeq structure */
7779 #define P4_FUNCDEF (-5) /* P4 is a pointer to a FuncDef structure */
7780 #define P4_KEYINFO (-6) /* P4 is a pointer to a KeyInfo structure */
7781 #define P4_VDBEFUNC (-7) /* P4 is a pointer to a VdbeFunc structure */
7782 #define P4_MEM (-8) /* P4 is a pointer to a Mem* structure */
7783 #define P4_TRANSIENT (-9) /* P4 is a pointer to a transient string */
7784 #define P4_VTAB (-10) /* P4 is a pointer to an sqlite3_vtab structure */
7785 #define P4_MPRINTF (-11) /* P4 is a string obtained from sqlite3_mprintf() */
7786 #define P4_REAL (-12) /* P4 is a 64-bit floating point value */
7787 #define P4_INT64 (-13) /* P4 is a 64-bit signed integer */
7788 #define P4_INT32 (-14) /* P4 is a 32-bit signed integer */
7789 #define P4_INTARRAY (-15) /* P4 is a vector of 32-bit integers */
7790 #define P4_SUBPROGRAM (-18) /* P4 is a pointer to a SubProgram structure */
7792 /* When adding a P4 argument using P4_KEYINFO, a copy of the KeyInfo structure
9290 ** used as the P4 operand, they will be more readable.
20677 /* a: p0<<28 | p2<<14 | p4 (unmasked) */
20714 /* a: p2<<28 | p4<<14 | p6 (unmasked) */
20747 /* a: p4<<29 | p6<<15 | p8 (unmasked) */
20868 /* a: p0<<28 | p2<<14 | p4 (unmasked) */
55450 ** the sqlite3VdbeChangeP4() function to change the value of the P4
55472 pOp->p4.p = 0;
55497 ** Add an opcode that includes the p4 value as a pointer.
55505 const char *zP4, /* The P4 operand */
55506 int p4type /* P4 operand type */
55514 ** Add an opcode that includes the p4 value as an integer.
55522 int p4 /* The P4 operand as an integer */
55525 sqlite3VdbeChangeP4(p, addr, SQLITE_INT_TO_PTR(p4), P4_INT32);
55634 if( p->apSub[j]==pRet->p4.pProgram ) break;
55641 p->apSub[p->nSub++] = pRet->p4.pProgram;
55809 pOut->p4.p = 0;
55894 ** Delete a P4 value if necessary.
55896 static void freeP4(sqlite3 *db, int p4type, void *p4){
55897 if( p4 ){
55906 sqlite3DbFree(db, p4);
55910 if( db->pnBytesFreed==0 ) sqlite3_free(p4);
55914 VdbeFunc *pVdbeFunc = (VdbeFunc *)p4;
55921 freeEphemeralFunction(db, (FuncDef*)p4);
55926 sqlite3ValueFree((sqlite3_value*)p4);
55928 Mem *p = (Mem*)p4;
55935 if( db->pnBytesFreed==0 ) sqlite3VtabUnlock((VTable *)p4);
55943 ** Free the space allocated for aOp and any p4 values allocated for the
55951 freeP4(db, pOp->p4type, pOp->p4.p);
55978 freeP4(db, pOp->p4type, pOp->p4.p);
55987 ** Change the value of the P4 operand for a specific instruction.
55992 ** If n>=0 then the P4 operand is dynamic, meaning that a copy of
56009 ** If addr<0 then change P4 on the most recently inserted instruction.
56029 freeP4(db, pOp->p4type, pOp->p4.p);
56030 pOp->p4.p = 0;
56034 pOp->p4.i = SQLITE_PTR_TO_INT(zP4);
56037 pOp->p4.p = 0;
56046 pOp->p4.pKeyInfo = pKeyInfo;
56061 pOp->p4.p = (void*)zP4;
56064 pOp->p4.p = (void*)zP4;
56069 pOp->p4.p = (void*)zP4;
56073 pOp->p4.z = sqlite3DbStrNDup(p->db, zP4, n);
56157 ** Compute a string that describes the P4 parameter for an opcode.
56167 KeyInfo *pKeyInfo = pOp->p4.pKeyInfo;
56195 CollSeq *pColl = pOp->p4.pColl;
56200 FuncDef *pDef = pOp->p4.pFunc;
56205 sqlite3_snprintf(nTemp, zTemp, "%lld", *pOp->p4.pI64);
56209 sqlite3_snprintf(nTemp, zTemp, "%d", pOp->p4.i);
56213 sqlite3_snprintf(nTemp, zTemp, "%.16g", *pOp->p4.pReal);
56217 Mem *pMem = pOp->p4.pMem;
56233 sqlite3_vtab *pVtab = pOp->p4.pVtab->pVtab;
56247 zP4 = pOp->p4.z;
56479 if( apSub[j]==pOp->p4.pProgram ) break;
56483 apSub[nSub++] = pOp->p4.pProgram;
56505 if( sqlite3VdbeMemGrow(pMem, 32, 0) ){ /* P4 */
56565 if( pOp->opcode==OP_Trace && pOp->p4.z!=0 ){
56566 const char *z = pOp->p4.z;
56583 if( pOp->opcode==OP_Trace && pOp->p4.z!=0 ){
56586 sqlite3_snprintf(sizeof(z), z, "%s", pOp->p4.z);
59640 p->azVar[pOp->p1-1] = pOp->p4.z;
59949 ** and 5 operands. Operands P1, P2, and P3 are integers. Operand P4
61209 /* Opcode: HaltIfNull P1 P2 P3 P4 *
61212 ** parameter P1, P2, and P4 as if this were a Halt instruction. If the
61221 /* Opcode: Halt P1 P2 * P4 *
61234 ** If P4 is not null then it is an error message string.
61264 if( pOp->p4.z ){
61266 sqlite3SetString(&p->zErrMsg, db, "%s", pOp->p4.z);
61268 sqlite3_log(pOp->p1, "abort at %d in [%s]: %s", pc, p->zSql, pOp->p4.z);
61294 /* Opcode: Int64 * P2 * P4 *
61296 ** P4 is a pointer to a 64-bit integer value.
61300 assert( pOp->p4.pI64!=0 );
61301 pOut->u.i = *pOp->p4.pI64;
61306 /* Opcode: Real * P2 * P4 *
61308 ** P4 is a pointer to a 64-bit floating point value.
61313 assert( !sqlite3IsNaN(*pOp->p4.pReal) );
61314 pOut->r = *pOp->p4.pReal;
61319 /* Opcode: String8 * P2 * P4 *
61321 ** P4 points to a nul terminated UTF-8 string. This opcode is transformed
61325 assert( pOp->p4.z!=0 );
61327 pOp->p1 = sqlite3Strlen30(pOp->p4.z);
61331 rc = sqlite3VdbeMemSetStr(pOut, pOp->p4.z, -1, SQLITE_UTF8, SQLITE_STATIC);
61340 sqlite3DbFree(db, pOp->p4.z);
61343 pOp->p4.z = pOut->z;
61353 /* Opcode: String P1 P2 * P4 *
61355 ** The string value P4 of length P1 (bytes) is stored in register P2.
61358 assert( pOp->p4.z!=0 );
61360 pOut->z = pOp->p4.z;
61377 /* Opcode: Blob P1 P2 * P4
61379 ** P4 points to a blob of data P1 bytes long. Store this
61384 sqlite3VdbeMemSetStr(pOut, pOp->p4.z, pOp->p1, 0, 0);
61390 /* Opcode: Variable P1 P2 * P4 *
61394 ** If the parameter is named, then its name appears in P4 and P3==1.
61395 ** The P4 value is used by sqlite3_bind_parameter_name().
61739 /* Opcode: CollSeq * * P4
61741 ** P4 is a pointer to a CollSeq struct. If the next call to a user function
61755 /* Opcode: Function P1 P2 P3 P4 P5
61757 ** Invoke a user function (P4 is a pointer to a Function structure that
61800 u.ag.ctx.pFunc = pOp->p4.pFunc;
61803 u.ag.ctx.pVdbeFunc = (VdbeFunc*)pOp->p4.pVdbeFunc;
61824 u.ag.ctx.pColl = pOp[-1].p4.pColl;
61842 pOp->p4.pVdbeFunc = u.ag.ctx.pVdbeFunc;
62077 /* Opcode: Lt P1 P2 P3 P4 P5
62098 ** P4 is used to do the comparison. If P4 is not specified then
62107 /* Opcode: Ne P1 P2 P3 P4 P5
62119 /* Opcode: Eq P1 P2 P3 P4 P5
62131 /* Opcode: Le P1 P2 P3 P4 P5
62137 /* Opcode: Gt P1 P2 P3 P4 P5
62143 /* Opcode: Ge P1 P2 P3 P4 P5
62198 assert( pOp->p4type==P4_COLLSEQ || pOp->p4.pColl==0 );
62201 u.ai.res = sqlite3MemCompare(pIn3, pIn1, pOp->p4.pColl);
62228 /* Opcode: Permutation * * * P4 *
62231 ** of integers in P4.
62239 assert( pOp->p4.ai );
62240 aPermute = pOp->p4.ai;
62244 /* Opcode: Compare P1 P2 P3 P4 *
62250 ** P4 is a KeyInfo structure that defines collating sequences and sort
62271 u.aj.pKeyInfo = pOp->p4.pKeyInfo;
62469 /* Opcode: Column P1 P2 P3 P4 P5
62480 ** if the P4 argument is a P4_MEM use the value of the P4 argument as
62725 ** request. In this case, set the value NULL or to P4 if P4 is
62746 sqlite3VdbeMemShallowCopy(u.am.pDest, pOp->p4.pMem, MEM_Static);
62775 /* Opcode: Affinity P1 P2 * P4 *
62779 ** P4 is a string that is P2 characters long. The nth character of the
62789 u.an.zAffinity = pOp->p4.z;
62803 /* Opcode: MakeRecord P1 P2 P3 P4 *
62809 ** P4 may be a string that is P2 characters long. The nth character of the
62816 ** If P4 is NULL then all index fields have the affinity NONE.
62857 u.ao.zAffinity = pOp->p4.z;
62961 /* Opcode: Savepoint P1 * * P4 *
62963 ** Open, release or rollback the savepoint named by parameter P4, depending
62980 u.aq.zName = pOp->p4.z;
63383 /* Opcode: OpenRead P1 P2 P3 P4 P5
63405 ** The P4 value may be either an integer (P4_INT32) or a pointer to
63408 ** sequence of the index being opened. Otherwise, if P4 is an integer
63413 /* Opcode: OpenWrite P1 P2 P3 P4 P5
63419 ** The P4 value may be either an integer (P4_INT32) or a pointer to
63422 ** sequence of the index being opened. Otherwise, if P4 is an integer
63485 u.aw.pKeyInfo = pOp->p4.pKeyInfo;
63489 u.aw.nField = pOp->p4.i;
63518 /* Opcode: OpenEphemeral P1 P2 * P4 *
63526 ** The cursor points to a BTree table if P4==0 and to a BTree index
63527 ** if P4 is not 0. If P4 is not NULL, it points to a KeyInfo structure
63536 /* Opcode: OpenAutoindex P1 P2 * P4 *
63570 if( pOp->p4.pKeyInfo ){
63577 (KeyInfo*)pOp->p4.z, u.ax.pCx->pCursor);
63578 u.ax.pCx->pKeyInfo = pOp->p4.pKeyInfo;
63634 /* Opcode: SeekGe P1 P2 P3 P4 *
63638 ** to an SQL index, then P3 is the first in an array of P4 registers
63647 /* Opcode: SeekGt P1 P2 P3 P4 *
63651 ** to an SQL index, then P3 is the first in an array of P4 registers
63660 /* Opcode: SeekLt P1 P2 P3 P4 *
63664 ** to an SQL index, then P3 is the first in an array of P4 registers
63673 /* Opcode: SeekLe P1 P2 P3 P4 *
63677 ** to an SQL index, then P3 is the first in an array of P4 registers
63770 u.az.nField = pOp->p4.i;
63869 /* Opcode: Found P1 P2 P3 P4 *
63871 ** If P4==0 then register P3 holds a blob constructed by MakeRecord. If
63872 ** P4>0 then register P3 is the first of P4 registers that form an unpacked
63875 ** Cursor P1 is on an index btree. If the record identified by P3 and P4
63879 /* Opcode: NotFound P1 P2 P3 P4 *
63881 ** If P4==0 then register P3 holds a blob constructed by MakeRecord. If
63882 ** P4>0 then register P3 is the first of P4 registers that form an unpacked
63885 ** Cursor P1 is on an index btree. If the record identified by P3 and P4
63887 ** does contain an entry whose prefix matches the P3/P4 record then control
63917 if( pOp->p4.i>0 ){
63919 u.bb.r.nField = (u16)pOp->p4.i;
63937 if( pOp->p4.i==0 ){
63955 /* Opcode: IsUnique P1 P2 P3 P4 *
63963 ** number R. Register P4
63969 ** If any of the N registers beginning with register P4 contains a NULL
63993 u.bc.aMx = &aMem[pOp->p4.i];
63994 /* Assert that the values of parameters P1 and P4 are in range. */
63996 assert( pOp->p4.i>0 && pOp->p4.i<=p->nMem );
64266 /* Opcode: Insert P1 P2 P3 P4 P5
64292 ** Parameter P4 may point to a string containing the table-name, or
64305 /* Opcode: InsertInt P1 P2 P3 P4 P5
64369 if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z ){
64371 u.bf.zTbl = pOp->p4.z;
64380 /* Opcode: Delete P1 P2 * P4 *
64395 ** If P4 is not NULL, then it is the name of the table that P1 is
64397 ** If P4
64415 if( db->xUpdateCallback && pOp->p4.z ){
64437 if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z ){
64439 const char *zTbl = pOp->p4.z;
64882 /* Opcode: IdxGE P1 P2 P3 P4 P5
64884 ** The P4 register values beginning with P3 form an unpacked index
64896 /* Opcode: IdxLT P1 P2 P3 P4 P5
64898 ** The P4 register values beginning with P3 form an unpacked index
64925 u.bq.r.nField = (u16)pOp->p4.i;
65092 /* Opcode: ParseSchema P1 P2 * P4 *
65095 ** that match the WHERE clause P4. P2 is the "force" flag. Always do
65145 db->aDb[u.bu.iDb].zName, u.bu.zMaster, pOp->p4.z);
65180 /* Opcode: DropTable P1 * * P4 *
65183 ** the table named P4 in database P1. This is called after a table
65188 sqlite3UnlinkAndDeleteTable(db, pOp->p1, pOp->p4.z);
65192 /* Opcode: DropIndex P1 * * P4 *
65195 ** the index named P4 in database P1. This is called after an index
65200 sqlite3UnlinkAndDeleteIndex(db, pOp->p1, pOp->p4.z);
65204 /* Opcode: DropTrigger P1 * * P4 *
65207 ** the trigger named P4 in database P1. This is called after a trigger
65212 sqlite3UnlinkAndDeleteTrigger(db, pOp->p1, pOp->p4.z);
65325 /* Opcode: RowSetTest P1 P2 P3 P4
65335 ** of values is identified by a unique P4 value. The first set
65336 ** must have P4==0, the final set P4=-1. P4 must be either -1 or
65337 ** non-negative. For non-negative values of P4 only the lower 4
65340 ** This allows optimizations: (a) when P4==0 there is no need to test
65342 ** (b) when P4==-1 there is no need to insert the value, as it will
65356 u.bx.iSet = pOp->p4.i;
65387 /* Opcode: Program P1 P2 P3 P4 *
65389 ** Execute the trigger program passed as P4 (type P4_SUBPROGRAM).
65398 ** P4 is a pointer to the VM containing the trigger program.
65412 u.by.pProgram = pOp->p4.pProgram;
65649 /* Opcode: AggStep * P2 P3 P4 P5
65652 ** function has P5 arguments. P4 is a pointer to the FuncDef
65680 u.cb.ctx.pFunc = pOp->p4.pFunc;
65695 u.cb.ctx.pColl = pOp[-1].p4.pColl;
65706 /* Opcode: AggFinal P1 P2 * P4 *
65712 ** P4 is a pointer to the FuncDef for this function. The P2
65715 ** P4 argument is only needed for the degenerate case where
65725 rc = sqlite3VdbeMemFinalize(u.cc.pMem, pOp->p4.pFunc);
65929 /* Opcode: TableLock P1 P2 P3 P4 *
65940 ** P4 contains a pointer to the name of the table being locked. This is only
65952 const char *z = pOp->p4.z;
65961 /* Opcode: VBegin * * * P4 *
65963 ** P4 may be a pointer to an sqlite3_vtab structure. If so, call the
65966 ** Also, whether or not P4 is set, check that this is not being called from
65974 u.cf.pVTab = pOp->p4.pVtab;
65982 /* Opcode: VCreate P1 * * P4 *
65984 ** P4 is the name of a virtual table in database P1. Call the xCreate method
65988 rc = sqlite3VtabCallCreate(db, pOp->p1, pOp->p4.z, &p->zErrMsg);
65994 /* Opcode: VDestroy P1 * * P4 *
65996 ** P4 is the name of a virtual table in database P1. Call the xDestroy method
66001 rc = sqlite3VtabCallDestroy(db, pOp->p1, pOp->p4.z);
66008 /* Opcode: VOpen P1 * * P4 *
66010 ** P4 is a pointer to a virtual table object, an sqlite3_vtab structure.
66024 u.cg.pVtab = pOp->p4.pVtab->pVtab;
66048 /* Opcode: VFilter P1 P2 P3 P4 *
66053 ** P4 is either NULL or a string that was generated by the xBestIndex
66054 ** method of the module. The interpretation of the P4 string is left
66106 rc = u.ch.pModule->xFilter(u.ch.pVtabCursor, u.ch.iQuery, pOp->p4.z, u.ch.nArg, u.ch.apArg);
66230 /* Opcode: VRename P1 * * P4 *
66232 ** P4 is a pointer to a virtual table object, an sqlite3_vtab structure.
66242 u.ck.pVtab = pOp->p4.pVtab->pVtab;
66257 /* Opcode: VUpdate P1 P2 P3 P4 *
66259 ** P4 is a pointer to a virtual table object, an sqlite3_vtab structure.
66291 u.cl.pVtab = pOp->p4.pVtab->pVtab;
66355 /* Opcode: Trace * * * P4 *
66358 ** the UTF-8 string contained in P4 is emitted on the trace callback.
66365 u.cm.zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql);
69058 CollSeq *p4;
69060 p4 = sqlite3BinaryCompareCollSeq(pParse, pLeft, pRight);
69063 (void*)p4, P4_COLLSEQ);
70625 ** P4 of OP_MakeRecord.
78376 SQLITE_PRIVATE void sqlite3HaltConstraint(Parse *pParse, int onError, char *p4, int p4type){
78381 sqlite3VdbeAddOp4(v, OP_Halt, SQLITE_CONSTRAINT, onError, 0, p4, p4type);
82514 ** Set P4 of the most recently inserted opcode to a column affinity
82588 if( pOp->opcode==OP_VOpen && pOp->p4.pVtab==pVTab ){
82589 assert( pOp->p4.pVtab!=0 );
87615 "addr", "opcode", "p1", "p2", "p3", "p4", "p5", "comment",
88591 ** freed. Add the KeyInfo structure to the P4 field of an opcode using
89751 int p4type, /* The p4 type for pKeyInfo */
93419 /* Code the OP_Program opcode in the parent VDBE. P4 of the OP_Program
93603 ** i-th column of table pTab. This routine sets the P4 parameter of the
93611 ** from the P4 parameter of the OP_Column instruction, is returned instead.
93613 ** for the column and the P4 value is not required.
93621 ** Therefore, the P4 parameter is only required if the default value for