Lines Matching defs:pParse

388 int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg){
395 sqlite3 *db = pParse->db; /* The database connection */
403 pParse->rc = SQLITE_OK;
404 pParse->zTail = zSql;
412 assert( pParse->pNewTable==0 );
413 assert( pParse->pNewTrigger==0 );
414 assert( pParse->nVar==0 );
415 assert( pParse->nVarExpr==0 );
416 assert( pParse->nVarExprAlloc==0 );
417 assert( pParse->apVarExpr==0 );
422 pParse->sLastToken.z = &zSql[i];
423 pParse->sLastToken.n = sqlite3GetToken((unsigned char*)&zSql[i],&tokenType);
424 i += pParse->sLastToken.n;
426 pParse->rc = SQLITE_TOOBIG;
432 sqlite3ErrorMsg(pParse, "interrupt");
433 pParse->rc = SQLITE_INTERRUPT;
441 &pParse->sLastToken);
446 pParse->zTail = &zSql[i];
450 sqlite3Parser(pEngine, tokenType, pParse->sLastToken, pParse);
452 if( pParse->rc!=SQLITE_OK ){
460 if( zSql[i]==0 && nErr==0 && pParse->rc==SQLITE_OK ){
462 sqlite3Parser(pEngine, TK_SEMI, pParse->sLastToken, pParse);
463 pParse->zTail = &zSql[i];
465 sqlite3Parser(pEngine, 0, pParse->sLastToken, pParse);
475 pParse->rc = SQLITE_NOMEM;
477 if( pParse->rc!=SQLITE_OK && pParse->rc!=SQLITE_DONE && pParse->zErrMsg==0 ){
478 sqlite3SetString(&pParse->zErrMsg, db, "%s", sqlite3ErrStr(pParse->rc));
481 if( pParse->zErrMsg ){
482 *pzErrMsg = pParse->zErrMsg;
483 sqlite3_log(pParse->rc, "%s", *pzErrMsg);
484 pParse->zErrMsg = 0;
487 if( pParse->pVdbe && pParse->nErr>0 && pParse->nested==0 ){
488 sqlite3VdbeDelete(pParse->pVdbe);
489 pParse->pVdbe = 0;
492 if( pParse->nested==0 ){
493 sqlite3DbFree(db, pParse->aTableLock);
494 pParse->aTableLock = 0;
495 pParse->nTableLock = 0;
499 sqlite3_free(pParse->apVtabLock);
503 /* If the pParse->declareVtab flag is set, do not delete any table
504 ** structure built up in pParse->pNewTable. The calling code (see vtab.c)
507 sqlite3DeleteTable(db, pParse->pNewTable);
510 sqlite3DeleteTrigger(db, pParse->pNewTrigger);
511 sqlite3DbFree(db, pParse->apVarExpr);
512 sqlite3DbFree(db, pParse->aAlias);
513 while( pParse->pAinc ){
514 AutoincInfo *p = pParse->pAinc;
515 pParse->pAinc = p->pNext;
518 while( pParse->pZombieTab ){
519 Table *p = pParse->pZombieTab;
520 pParse->pZombieTab = p->pNextZombie;
523 if( nErr>0 && pParse->rc==SQLITE_OK ){
524 pParse->rc = SQLITE_ERROR;