Lines Matching refs:p

37   Vdbe *p;  in sqliteVdbeCreate()  local
38 p = sqliteMalloc( sizeof(Vdbe) ); in sqliteVdbeCreate()
39 if( p==0 ) return 0; in sqliteVdbeCreate()
40 p->db = db; in sqliteVdbeCreate()
42 db->pVdbe->pPrev = p; in sqliteVdbeCreate()
44 p->pNext = db->pVdbe; in sqliteVdbeCreate()
45 p->pPrev = 0; in sqliteVdbeCreate()
46 db->pVdbe = p; in sqliteVdbeCreate()
47 p->magic = VDBE_MAGIC_INIT; in sqliteVdbeCreate()
48 return p; in sqliteVdbeCreate()
54 void sqliteVdbeTrace(Vdbe *p, FILE *trace){ in sqliteVdbeTrace() argument
55 p->trace = trace; in sqliteVdbeTrace()
74 int sqliteVdbeAddOp(Vdbe *p, int op, int p1, int p2){ in sqliteVdbeAddOp() argument
78 i = p->nOp; in sqliteVdbeAddOp()
79 p->nOp++; in sqliteVdbeAddOp()
80 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeAddOp()
81 if( i>=p->nOpAlloc ){ in sqliteVdbeAddOp()
82 int oldSize = p->nOpAlloc; in sqliteVdbeAddOp()
84 p->nOpAlloc = p->nOpAlloc*2 + 100; in sqliteVdbeAddOp()
85 aNew = sqliteRealloc(p->aOp, p->nOpAlloc*sizeof(Op)); in sqliteVdbeAddOp()
87 p->nOpAlloc = oldSize; in sqliteVdbeAddOp()
90 p->aOp = aNew; in sqliteVdbeAddOp()
91 memset(&p->aOp[oldSize], 0, (p->nOpAlloc-oldSize)*sizeof(Op)); in sqliteVdbeAddOp()
93 pOp = &p->aOp[i]; in sqliteVdbeAddOp()
96 if( p2<0 && (-1-p2)<p->nLabel && p->aLabel[-1-p2]>=0 ){ in sqliteVdbeAddOp()
97 p2 = p->aLabel[-1-p2]; in sqliteVdbeAddOp()
103 if( sqlite_vdbe_addop_trace ) sqliteVdbePrintOp(0, i, &p->aOp[i]); in sqliteVdbeAddOp()
111 int sqliteVdbeOp3(Vdbe *p, int op, int p1, int p2, const char *zP3, int p3type){ in sqliteVdbeOp3() argument
112 int addr = sqliteVdbeAddOp(p, op, p1, p2); in sqliteVdbeOp3()
113 sqliteVdbeChangeP3(p, addr, zP3, p3type); in sqliteVdbeOp3()
120 int sqliteVdbeCode(Vdbe *p, ...){ in sqliteVdbeCode() argument
124 va_start(ap, p); in sqliteVdbeCode()
125 addr = p->nOp; in sqliteVdbeCode()
129 sqliteVdbeAddOp(p, opcode, p1, p2); in sqliteVdbeCode()
149 int sqliteVdbeMakeLabel(Vdbe *p){ in sqliteVdbeMakeLabel() argument
151 i = p->nLabel++; in sqliteVdbeMakeLabel()
152 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeMakeLabel()
153 if( i>=p->nLabelAlloc ){ in sqliteVdbeMakeLabel()
155 p->nLabelAlloc = p->nLabelAlloc*2 + 10; in sqliteVdbeMakeLabel()
156 aNew = sqliteRealloc( p->aLabel, p->nLabelAlloc*sizeof(p->aLabel[0])); in sqliteVdbeMakeLabel()
158 sqliteFree(p->aLabel); in sqliteVdbeMakeLabel()
160 p->aLabel = aNew; in sqliteVdbeMakeLabel()
162 if( p->aLabel==0 ){ in sqliteVdbeMakeLabel()
163 p->nLabel = 0; in sqliteVdbeMakeLabel()
164 p->nLabelAlloc = 0; in sqliteVdbeMakeLabel()
167 p->aLabel[i] = -1; in sqliteVdbeMakeLabel()
176 void sqliteVdbeResolveLabel(Vdbe *p, int x){ in sqliteVdbeResolveLabel() argument
178 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeResolveLabel()
179 if( x<0 && (-x)<=p->nLabel && p->aOp ){ in sqliteVdbeResolveLabel()
180 if( p->aLabel[-1-x]==p->nOp ) return; in sqliteVdbeResolveLabel()
181 assert( p->aLabel[-1-x]<0 ); in sqliteVdbeResolveLabel()
182 p->aLabel[-1-x] = p->nOp; in sqliteVdbeResolveLabel()
183 for(j=0; j<p->nOp; j++){ in sqliteVdbeResolveLabel()
184 if( p->aOp[j].p2==x ) p->aOp[j].p2 = p->nOp; in sqliteVdbeResolveLabel()
192 int sqliteVdbeCurrentAddr(Vdbe *p){ in sqliteVdbeCurrentAddr() argument
193 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeCurrentAddr()
194 return p->nOp; in sqliteVdbeCurrentAddr()
201 int sqliteVdbeAddOpList(Vdbe *p, int nOp, VdbeOpList const *aOp){ in sqliteVdbeAddOpList() argument
203 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeAddOpList()
204 if( p->nOp + nOp >= p->nOpAlloc ){ in sqliteVdbeAddOpList()
205 int oldSize = p->nOpAlloc; in sqliteVdbeAddOpList()
207 p->nOpAlloc = p->nOpAlloc*2 + nOp + 10; in sqliteVdbeAddOpList()
208 aNew = sqliteRealloc(p->aOp, p->nOpAlloc*sizeof(Op)); in sqliteVdbeAddOpList()
210 p->nOpAlloc = oldSize; in sqliteVdbeAddOpList()
213 p->aOp = aNew; in sqliteVdbeAddOpList()
214 memset(&p->aOp[oldSize], 0, (p->nOpAlloc-oldSize)*sizeof(Op)); in sqliteVdbeAddOpList()
216 addr = p->nOp; in sqliteVdbeAddOpList()
222 VdbeOp *pOut = &p->aOp[i+addr]; in sqliteVdbeAddOpList()
230 sqliteVdbePrintOp(0, i+addr, &p->aOp[i+addr]); in sqliteVdbeAddOpList()
234 p->nOp += nOp; in sqliteVdbeAddOpList()
245 void sqliteVdbeChangeP1(Vdbe *p, int addr, int val){ in sqliteVdbeChangeP1() argument
246 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeChangeP1()
247 if( p && addr>=0 && p->nOp>addr && p->aOp ){ in sqliteVdbeChangeP1()
248 p->aOp[addr].p1 = val; in sqliteVdbeChangeP1()
256 void sqliteVdbeChangeP2(Vdbe *p, int addr, int val){ in sqliteVdbeChangeP2() argument
258 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeChangeP2()
259 if( p && addr>=0 && p->nOp>addr && p->aOp ){ in sqliteVdbeChangeP2()
260 p->aOp[addr].p2 = val; in sqliteVdbeChangeP2()
281 void sqliteVdbeChangeP3(Vdbe *p, int addr, const char *zP3, int n){ in sqliteVdbeChangeP3() argument
283 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeChangeP3()
284 if( p==0 || p->aOp==0 ) return; in sqliteVdbeChangeP3()
285 if( addr<0 || addr>=p->nOp ){ in sqliteVdbeChangeP3()
286 addr = p->nOp - 1; in sqliteVdbeChangeP3()
289 pOp = &p->aOp[addr]; in sqliteVdbeChangeP3()
315 void sqliteVdbeDequoteP3(Vdbe *p, int addr){ in sqliteVdbeDequoteP3() argument
317 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeDequoteP3()
318 if( p->aOp==0 ) return; in sqliteVdbeDequoteP3()
319 if( addr<0 || addr>=p->nOp ){ in sqliteVdbeDequoteP3()
320 addr = p->nOp - 1; in sqliteVdbeDequoteP3()
323 pOp = &p->aOp[addr]; in sqliteVdbeDequoteP3()
338 void sqliteVdbeCompressSpace(Vdbe *p, int addr){ in sqliteVdbeCompressSpace() argument
342 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeCompressSpace()
343 if( p->aOp==0 || addr<0 || addr>=p->nOp ) return; in sqliteVdbeCompressSpace()
344 pOp = &p->aOp[addr]; in sqliteVdbeCompressSpace()
372 int sqliteVdbeFindOp(Vdbe *p, int op, int p2){ in sqliteVdbeFindOp() argument
374 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeFindOp()
375 for(i=0; i<p->nOp; i++){ in sqliteVdbeFindOp()
376 if( p->aOp[i].opcode==op && p->aOp[i].p2==p2 ) return i+1; in sqliteVdbeFindOp()
384 VdbeOp *sqliteVdbeGetOp(Vdbe *p, int addr){ in sqliteVdbeGetOp() argument
385 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeGetOp()
386 assert( addr>=0 && addr<p->nOp ); in sqliteVdbeGetOp()
387 return &p->aOp[addr]; in sqliteVdbeGetOp()
411 char *sqlite_set_result_string(sqlite_func *p, const char *zResult, int n){ in sqlite_set_result_string() argument
412 assert( !p->isStep ); in sqlite_set_result_string()
413 if( p->s.flags & MEM_Dyn ){ in sqlite_set_result_string()
414 sqliteFree(p->s.z); in sqlite_set_result_string()
417 p->s.flags = MEM_Null; in sqlite_set_result_string()
419 p->s.z = 0; in sqlite_set_result_string()
420 p->s.n = 0; in sqlite_set_result_string()
424 memcpy(p->s.zShort, zResult, n); in sqlite_set_result_string()
425 p->s.zShort[n] = 0; in sqlite_set_result_string()
426 p->s.flags = MEM_Str | MEM_Short; in sqlite_set_result_string()
427 p->s.z = p->s.zShort; in sqlite_set_result_string()
429 p->s.z = sqliteMallocRaw( n+1 ); in sqlite_set_result_string()
430 if( p->s.z ){ in sqlite_set_result_string()
431 memcpy(p->s.z, zResult, n); in sqlite_set_result_string()
432 p->s.z[n] = 0; in sqlite_set_result_string()
434 p->s.flags = MEM_Str | MEM_Dyn; in sqlite_set_result_string()
436 p->s.n = n+1; in sqlite_set_result_string()
438 return p->s.z; in sqlite_set_result_string()
440 void sqlite_set_result_int(sqlite_func *p, int iResult){ in sqlite_set_result_int() argument
441 assert( !p->isStep ); in sqlite_set_result_int()
442 if( p->s.flags & MEM_Dyn ){ in sqlite_set_result_int()
443 sqliteFree(p->s.z); in sqlite_set_result_int()
445 p->s.i = iResult; in sqlite_set_result_int()
446 p->s.flags = MEM_Int; in sqlite_set_result_int()
448 void sqlite_set_result_double(sqlite_func *p, double rResult){ in sqlite_set_result_double() argument
449 assert( !p->isStep ); in sqlite_set_result_double()
450 if( p->s.flags & MEM_Dyn ){ in sqlite_set_result_double()
451 sqliteFree(p->s.z); in sqlite_set_result_double()
453 p->s.r = rResult; in sqlite_set_result_double()
454 p->s.flags = MEM_Real; in sqlite_set_result_double()
456 void sqlite_set_result_error(sqlite_func *p, const char *zMsg, int n){ in sqlite_set_result_error() argument
457 assert( !p->isStep ); in sqlite_set_result_error()
458 sqlite_set_result_string(p, zMsg, n); in sqlite_set_result_error()
459 p->isError = 1; in sqlite_set_result_error()
466 void *sqlite_user_data(sqlite_func *p){ in sqlite_user_data() argument
467 assert( p && p->pFunc ); in sqlite_user_data()
468 return p->pFunc->pUserData; in sqlite_user_data()
480 void *sqlite_aggregate_context(sqlite_func *p, int nByte){ in sqlite_aggregate_context() argument
481 assert( p && p->pFunc && p->pFunc->xStep ); in sqlite_aggregate_context()
482 if( p->pAgg==0 ){ in sqlite_aggregate_context()
484 p->pAgg = (void*)p->s.z; in sqlite_aggregate_context()
485 memset(p->pAgg, 0, nByte); in sqlite_aggregate_context()
487 p->pAgg = sqliteMalloc( nByte ); in sqlite_aggregate_context()
490 return p->pAgg; in sqlite_aggregate_context()
501 int sqlite_aggregate_count(sqlite_func *p){ in sqlite_aggregate_count() argument
502 assert( p && p->pFunc && p->pFunc->xStep ); in sqlite_aggregate_count()
503 return p->cnt; in sqlite_aggregate_count()
534 Vdbe *p /* The VDBE */ in sqliteVdbeList() argument
536 sqlite *db = p->db; in sqliteVdbeList()
545 assert( p->popStack==0 ); in sqliteVdbeList()
546 assert( p->explain ); in sqliteVdbeList()
547 p->azColName = azColumnNames; in sqliteVdbeList()
548 p->azResColumn = p->zArgv; in sqliteVdbeList()
549 for(i=0; i<5; i++) p->zArgv[i] = p->aStack[i].zShort; in sqliteVdbeList()
550 i = p->pc; in sqliteVdbeList()
551 if( i>=p->nOp ){ in sqliteVdbeList()
552 p->rc = SQLITE_OK; in sqliteVdbeList()
557 p->rc = SQLITE_MISUSE; in sqliteVdbeList()
559 p->rc = SQLITE_INTERRUPT; in sqliteVdbeList()
562 sqliteSetString(&p->zErrMsg, sqlite_error_string(p->rc), (char*)0); in sqliteVdbeList()
564 sprintf(p->zArgv[0],"%d",i); in sqliteVdbeList()
565 sprintf(p->zArgv[2],"%d", p->aOp[i].p1); in sqliteVdbeList()
566 sprintf(p->zArgv[3],"%d", p->aOp[i].p2); in sqliteVdbeList()
567 if( p->aOp[i].p3type==P3_POINTER ){ in sqliteVdbeList()
568 sprintf(p->aStack[4].zShort, "ptr(%#lx)", (long)p->aOp[i].p3); in sqliteVdbeList()
569 p->zArgv[4] = p->aStack[4].zShort; in sqliteVdbeList()
571 p->zArgv[4] = p->aOp[i].p3; in sqliteVdbeList()
573 p->zArgv[1] = sqliteOpcodeNames[p->aOp[i].opcode]; in sqliteVdbeList()
574 p->pc = i+1; in sqliteVdbeList()
575 p->azResColumn = p->zArgv; in sqliteVdbeList()
576 p->nResColumn = 5; in sqliteVdbeList()
577 p->rc = SQLITE_OK; in sqliteVdbeList()
590 Vdbe *p, /* The VDBE */ in sqliteVdbeMakeReady() argument
596 assert( p!=0 ); in sqliteVdbeMakeReady()
597 assert( p->magic==VDBE_MAGIC_INIT ); in sqliteVdbeMakeReady()
601 if( p->nOp==0 || (p->aOp && p->aOp[p->nOp-1].opcode!=OP_Halt) ){ in sqliteVdbeMakeReady()
602 sqliteVdbeAddOp(p, OP_Halt, 0, 0); in sqliteVdbeMakeReady()
612 if( p->aStack==0 ){ in sqliteVdbeMakeReady()
613 p->nVar = nVar; in sqliteVdbeMakeReady()
615 n = isExplain ? 10 : p->nOp; in sqliteVdbeMakeReady()
616 p->aStack = sqliteMalloc( in sqliteVdbeMakeReady()
617 n*(sizeof(p->aStack[0]) + 2*sizeof(char*)) /* aStack and zArgv */ in sqliteVdbeMakeReady()
618 + p->nVar*(sizeof(char*)+sizeof(int)+1) /* azVar, anVar, abVar */ in sqliteVdbeMakeReady()
620 p->zArgv = (char**)&p->aStack[n]; in sqliteVdbeMakeReady()
621 p->azColName = (char**)&p->zArgv[n]; in sqliteVdbeMakeReady()
622 p->azVar = (char**)&p->azColName[n]; in sqliteVdbeMakeReady()
623 p->anVar = (int*)&p->azVar[p->nVar]; in sqliteVdbeMakeReady()
624 p->abVar = (u8*)&p->anVar[p->nVar]; in sqliteVdbeMakeReady()
627 sqliteHashInit(&p->agg.hash, SQLITE_HASH_BINARY, 0); in sqliteVdbeMakeReady()
628 p->agg.pSearch = 0; in sqliteVdbeMakeReady()
631 p->trace = stdout; in sqliteVdbeMakeReady()
634 p->pTos = &p->aStack[-1]; in sqliteVdbeMakeReady()
635 p->pc = 0; in sqliteVdbeMakeReady()
636 p->rc = SQLITE_OK; in sqliteVdbeMakeReady()
637 p->uniqueCnt = 0; in sqliteVdbeMakeReady()
638 p->returnDepth = 0; in sqliteVdbeMakeReady()
639 p->errorAction = OE_Abort; in sqliteVdbeMakeReady()
640 p->undoTransOnError = 0; in sqliteVdbeMakeReady()
641 p->popStack = 0; in sqliteVdbeMakeReady()
642 p->explain |= isExplain; in sqliteVdbeMakeReady()
643 p->magic = VDBE_MAGIC_RUN; in sqliteVdbeMakeReady()
647 for(i=0; i<p->nOp; i++){ in sqliteVdbeMakeReady()
648 p->aOp[i].cnt = 0; in sqliteVdbeMakeReady()
649 p->aOp[i].cycles = 0; in sqliteVdbeMakeReady()
659 void sqliteVdbeSorterReset(Vdbe *p){ in sqliteVdbeSorterReset() argument
660 while( p->pSort ){ in sqliteVdbeSorterReset()
661 Sorter *pSorter = p->pSort; in sqliteVdbeSorterReset()
662 p->pSort = pSorter->pNext; in sqliteVdbeSorterReset()
680 HashElem *p; in sqliteVdbeAggReset() local
681 for(p = sqliteHashFirst(&pAgg->hash); p; p = sqliteHashNext(p)){ in sqliteVdbeAggReset()
682 AggElem *pElem = sqliteHashData(p); in sqliteVdbeAggReset()
718 void sqliteVdbeKeylistFree(Keylist *p){ in sqliteVdbeKeylistFree() argument
719 while( p ){ in sqliteVdbeKeylistFree()
720 Keylist *pNext = p->pNext; in sqliteVdbeKeylistFree()
721 sqliteFree(p); in sqliteVdbeKeylistFree()
722 p = pNext; in sqliteVdbeKeylistFree()
744 static void closeAllCursors(Vdbe *p){ in closeAllCursors() argument
746 for(i=0; i<p->nCursor; i++){ in closeAllCursors()
747 sqliteVdbeCleanupCursor(&p->aCsr[i]); in closeAllCursors()
749 sqliteFree(p->aCsr); in closeAllCursors()
750 p->aCsr = 0; in closeAllCursors()
751 p->nCursor = 0; in closeAllCursors()
761 static void Cleanup(Vdbe *p){ in Cleanup() argument
763 if( p->aStack ){ in Cleanup()
764 Mem *pTos = p->pTos; in Cleanup()
765 while( pTos>=p->aStack ){ in Cleanup()
771 p->pTos = pTos; in Cleanup()
773 closeAllCursors(p); in Cleanup()
774 if( p->aMem ){ in Cleanup()
775 for(i=0; i<p->nMem; i++){ in Cleanup()
776 if( p->aMem[i].flags & MEM_Dyn ){ in Cleanup()
777 sqliteFree(p->aMem[i].z); in Cleanup()
781 sqliteFree(p->aMem); in Cleanup()
782 p->aMem = 0; in Cleanup()
783 p->nMem = 0; in Cleanup()
784 if( p->pList ){ in Cleanup()
785 sqliteVdbeKeylistFree(p->pList); in Cleanup()
786 p->pList = 0; in Cleanup()
788 sqliteVdbeSorterReset(p); in Cleanup()
789 if( p->pFile ){ in Cleanup()
790 if( p->pFile!=stdin ) fclose(p->pFile); in Cleanup()
791 p->pFile = 0; in Cleanup()
793 if( p->azField ){ in Cleanup()
794 sqliteFree(p->azField); in Cleanup()
795 p->azField = 0; in Cleanup()
797 p->nField = 0; in Cleanup()
798 if( p->zLine ){ in Cleanup()
799 sqliteFree(p->zLine); in Cleanup()
800 p->zLine = 0; in Cleanup()
802 p->nLineAlloc = 0; in Cleanup()
803 sqliteVdbeAggReset(&p->agg); in Cleanup()
804 if( p->aSet ){ in Cleanup()
805 for(i=0; i<p->nSet; i++){ in Cleanup()
806 sqliteHashClear(&p->aSet[i].hash); in Cleanup()
809 sqliteFree(p->aSet); in Cleanup()
810 p->aSet = 0; in Cleanup()
811 p->nSet = 0; in Cleanup()
812 if( p->keylistStack ){ in Cleanup()
814 for(ii = 0; ii < p->keylistStackDepth; ii++){ in Cleanup()
815 sqliteVdbeKeylistFree(p->keylistStack[ii]); in Cleanup()
817 sqliteFree(p->keylistStack); in Cleanup()
818 p->keylistStackDepth = 0; in Cleanup()
819 p->keylistStack = 0; in Cleanup()
821 sqliteFree(p->contextStack); in Cleanup()
822 p->contextStack = 0; in Cleanup()
823 sqliteFree(p->zErrMsg); in Cleanup()
824 p->zErrMsg = 0; in Cleanup()
834 int sqliteVdbeReset(Vdbe *p, char **pzErrMsg){ in sqliteVdbeReset() argument
835 sqlite *db = p->db; in sqliteVdbeReset()
838 if( p->magic!=VDBE_MAGIC_RUN && p->magic!=VDBE_MAGIC_HALT ){ in sqliteVdbeReset()
842 if( p->zErrMsg ){ in sqliteVdbeReset()
844 *pzErrMsg = p->zErrMsg; in sqliteVdbeReset()
846 sqliteFree(p->zErrMsg); in sqliteVdbeReset()
848 p->zErrMsg = 0; in sqliteVdbeReset()
849 }else if( p->rc ){ in sqliteVdbeReset()
850 sqliteSetString(pzErrMsg, sqlite_error_string(p->rc), (char*)0); in sqliteVdbeReset()
852 Cleanup(p); in sqliteVdbeReset()
853 if( p->rc!=SQLITE_OK ){ in sqliteVdbeReset()
854 switch( p->errorAction ){ in sqliteVdbeReset()
856 if( !p->undoTransOnError ){ in sqliteVdbeReset()
873 if( p->undoTransOnError ){ in sqliteVdbeReset()
889 assert( p->pTos<&p->aStack[p->pc] || sqlite_malloc_failed==1 ); in sqliteVdbeReset()
896 for(i=0; i<p->nOp; i++){ in sqliteVdbeReset()
897 fprintf(out, "%02x", p->aOp[i].opcode); in sqliteVdbeReset()
900 for(i=0; i<p->nOp; i++){ in sqliteVdbeReset()
902 p->aOp[i].cnt, in sqliteVdbeReset()
903 p->aOp[i].cycles, in sqliteVdbeReset()
904 p->aOp[i].cnt>0 ? p->aOp[i].cycles/p->aOp[i].cnt : 0 in sqliteVdbeReset()
906 sqliteVdbePrintOp(out, i, &p->aOp[i]); in sqliteVdbeReset()
912 p->magic = VDBE_MAGIC_INIT; in sqliteVdbeReset()
913 return p->rc; in sqliteVdbeReset()
920 int sqliteVdbeFinalize(Vdbe *p, char **pzErrMsg){ in sqliteVdbeFinalize() argument
924 if( p->magic!=VDBE_MAGIC_RUN && p->magic!=VDBE_MAGIC_HALT ){ in sqliteVdbeFinalize()
928 db = p->db; in sqliteVdbeFinalize()
929 rc = sqliteVdbeReset(p, pzErrMsg); in sqliteVdbeFinalize()
930 sqliteVdbeDelete(p); in sqliteVdbeFinalize()
949 Vdbe *p = (Vdbe*)pVm; in sqlite_bind() local
950 if( p->magic!=VDBE_MAGIC_RUN || p->pc!=0 ){ in sqlite_bind()
953 if( i<1 || i>p->nVar ){ in sqlite_bind()
957 if( p->abVar[i] ){ in sqlite_bind()
958 sqliteFree(p->azVar[i]); in sqlite_bind()
968 p->azVar[i] = sqliteMalloc( len ); in sqlite_bind()
969 if( p->azVar[i] ) memcpy(p->azVar[i], zVal, len); in sqlite_bind()
971 p->azVar[i] = (char*)zVal; in sqlite_bind()
973 p->abVar[i] = copy; in sqlite_bind()
974 p->anVar[i] = len; in sqlite_bind()
982 void sqliteVdbeDelete(Vdbe *p){ in sqliteVdbeDelete() argument
984 if( p==0 ) return; in sqliteVdbeDelete()
985 Cleanup(p); in sqliteVdbeDelete()
986 if( p->pPrev ){ in sqliteVdbeDelete()
987 p->pPrev->pNext = p->pNext; in sqliteVdbeDelete()
989 assert( p->db->pVdbe==p ); in sqliteVdbeDelete()
990 p->db->pVdbe = p->pNext; in sqliteVdbeDelete()
992 if( p->pNext ){ in sqliteVdbeDelete()
993 p->pNext->pPrev = p->pPrev; in sqliteVdbeDelete()
995 p->pPrev = p->pNext = 0; in sqliteVdbeDelete()
996 if( p->nOpAlloc==0 ){ in sqliteVdbeDelete()
997 p->aOp = 0; in sqliteVdbeDelete()
998 p->nOp = 0; in sqliteVdbeDelete()
1000 for(i=0; i<p->nOp; i++){ in sqliteVdbeDelete()
1001 if( p->aOp[i].p3type==P3_DYNAMIC ){ in sqliteVdbeDelete()
1002 sqliteFree(p->aOp[i].p3); in sqliteVdbeDelete()
1005 for(i=0; i<p->nVar; i++){ in sqliteVdbeDelete()
1006 if( p->abVar[i] ) sqliteFree(p->azVar[i]); in sqliteVdbeDelete()
1008 sqliteFree(p->aOp); in sqliteVdbeDelete()
1009 sqliteFree(p->aLabel); in sqliteVdbeDelete()
1010 sqliteFree(p->aStack); in sqliteVdbeDelete()
1011 p->magic = VDBE_MAGIC_DEAD; in sqliteVdbeDelete()
1012 sqliteFree(p); in sqliteVdbeDelete()
1047 int sqliteVdbeCursorMoveto(Cursor *p){ in sqliteVdbeCursorMoveto() argument
1048 if( p->deferredMoveto ){ in sqliteVdbeCursorMoveto()
1051 sqliteBtreeMoveto(p->pCursor, (char*)&p->movetoTarget, sizeof(int), &res); in sqliteVdbeCursorMoveto()
1052 p->lastRecno = keyToInt(p->movetoTarget); in sqliteVdbeCursorMoveto()
1053 p->recnoIsValid = res==0; in sqliteVdbeCursorMoveto()
1055 sqliteBtreeNext(p->pCursor, &res); in sqliteVdbeCursorMoveto()
1058 p->deferredMoveto = 0; in sqliteVdbeCursorMoveto()