Lines Matching refs:pParse
31 Table *sqlite3SrcListLookup(Parse *pParse, SrcList *pSrc){ in sqlite3SrcListLookup() argument
35 pTab = sqlite3LocateTableItem(pParse, 0, pItem); in sqlite3SrcListLookup()
36 sqlite3DeleteTable(pParse->db, pItem->pTab); in sqlite3SrcListLookup()
40 if( pItem->fg.isIndexedBy && sqlite3IndexedByLookup(pParse, pItem) ){ in sqlite3SrcListLookup()
76 static int vtabIsReadOnly(Parse *pParse, Table *pTab){ in vtabIsReadOnly() argument
77 if( sqlite3GetVTable(pParse->db, pTab)->pMod->pModule->xUpdate==0 ){ in vtabIsReadOnly()
87 if( pParse->pToplevel!=0 in vtabIsReadOnly()
89 ((pParse->db->flags & SQLITE_TrustedSchema)!=0) in vtabIsReadOnly()
91 sqlite3ErrorMsg(pParse, "unsafe use of virtual table \"%s\"", in vtabIsReadOnly()
96 static int tabIsReadOnly(Parse *pParse, Table *pTab){ in tabIsReadOnly() argument
99 return vtabIsReadOnly(pParse, pTab); in tabIsReadOnly()
102 db = pParse->db; in tabIsReadOnly()
104 return sqlite3WritableSchema(db)==0 && pParse->nested==0; in tabIsReadOnly()
117 int sqlite3IsReadOnly(Parse *pParse, Table *pTab, int viewOk){ in sqlite3IsReadOnly() argument
118 if( tabIsReadOnly(pParse, pTab) ){ in sqlite3IsReadOnly()
119 sqlite3ErrorMsg(pParse, "table %s may not be modified", pTab->zName); in sqlite3IsReadOnly()
124 sqlite3ErrorMsg(pParse,"cannot modify %s because it is a view",pTab->zName); in sqlite3IsReadOnly()
139 Parse *pParse, /* Parsing context */ in sqlite3MaterializeView() argument
149 sqlite3 *db = pParse->db; in sqlite3MaterializeView()
152 pFrom = sqlite3SrcListAppend(pParse, 0, 0, 0); in sqlite3MaterializeView()
160 pSel = sqlite3SelectNew(pParse, 0, pFrom, pWhere, 0, 0, pOrderBy, in sqlite3MaterializeView()
163 sqlite3Select(pParse, pSel, &dest); in sqlite3MaterializeView()
178 Parse *pParse, /* The parser context */ in sqlite3LimitWhere() argument
185 sqlite3 *db = pParse->db; in sqlite3LimitWhere()
196 sqlite3ErrorMsg(pParse, "ORDER BY without LIMIT on %s", zStmtType); in sqlite3LimitWhere()
197 sqlite3ExprDelete(pParse->db, pWhere); in sqlite3LimitWhere()
198 sqlite3ExprListDelete(pParse->db, pOrderBy); in sqlite3LimitWhere()
220 pLhs = sqlite3PExpr(pParse, TK_ROW, 0, 0); in sqlite3LimitWhere()
222 pParse, 0, sqlite3PExpr(pParse, TK_ROW, 0, 0) in sqlite3LimitWhere()
229 pEList = sqlite3ExprListAppend(pParse, 0, sqlite3Expr(db, TK_ID, zName)); in sqlite3LimitWhere()
234 pEList = sqlite3ExprListAppend(pParse, pEList, p); in sqlite3LimitWhere()
236 pLhs = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); in sqlite3LimitWhere()
258 pSelect = sqlite3SelectNew(pParse, pEList, pSelectSrc, pWhere, 0 ,0, in sqlite3LimitWhere()
263 pInClause = sqlite3PExpr(pParse, TK_IN, pLhs, 0); in sqlite3LimitWhere()
264 sqlite3PExprAddSelect(pParse, pInClause, pSelect); in sqlite3LimitWhere()
278 Parse *pParse, /* The parser context */ in sqlite3DeleteFrom() argument
321 db = pParse->db; in sqlite3DeleteFrom()
322 assert( db->pParse==pParse ); in sqlite3DeleteFrom()
323 if( pParse->nErr ){ in sqlite3DeleteFrom()
334 pTab = sqlite3SrcListLookup(pParse, pTabList); in sqlite3DeleteFrom()
341 pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0); in sqlite3DeleteFrom()
347 bComplex = pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0); in sqlite3DeleteFrom()
356 sqlite3TreeViewDelete(pParse->pWith, pTabList, pWhere, in sqlite3DeleteFrom()
364 pParse, pTabList, pWhere, pOrderBy, pLimit, "DELETE" in sqlite3DeleteFrom()
373 if( sqlite3ViewGetColumnNames(pParse, pTab) ){ in sqlite3DeleteFrom()
377 if( sqlite3IsReadOnly(pParse, pTab, (pTrigger?1:0)) ){ in sqlite3DeleteFrom()
382 rcauth = sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, in sqlite3DeleteFrom()
393 iTabCur = pTabList->a[0].iCursor = pParse->nTab++; in sqlite3DeleteFrom()
395 pParse->nTab++; in sqlite3DeleteFrom()
401 sqlite3AuthContextPush(pParse, &sContext, pTab->zName); in sqlite3DeleteFrom()
406 v = sqlite3GetVdbe(pParse); in sqlite3DeleteFrom()
410 if( pParse->nested==0 ) sqlite3VdbeCountChanges(v); in sqlite3DeleteFrom()
411 sqlite3BeginWriteOperation(pParse, bComplex, iDb); in sqlite3DeleteFrom()
418 sqlite3MaterializeView(pParse, pTab, in sqlite3DeleteFrom()
430 sNC.pParse = pParse; in sqlite3DeleteFrom()
440 && !pParse->nested in sqlite3DeleteFrom()
441 && !pParse->pTriggerTab in sqlite3DeleteFrom()
442 && !pParse->bReturning in sqlite3DeleteFrom()
444 memCnt = ++pParse->nMem; in sqlite3DeleteFrom()
469 sqlite3TableLock(pParse, iDb, pTab->tnum, 1, pTab->zName); in sqlite3DeleteFrom()
492 iRowSet = ++pParse->nMem; in sqlite3DeleteFrom()
500 iPk = pParse->nMem+1; in sqlite3DeleteFrom()
501 pParse->nMem += nPk; in sqlite3DeleteFrom()
502 iEphCur = pParse->nTab++; in sqlite3DeleteFrom()
504 sqlite3VdbeSetP4KeyInfo(pParse, pPk); in sqlite3DeleteFrom()
515 pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, 0, 0,0,wcf,iTabCur+1); in sqlite3DeleteFrom()
520 if( eOnePass!=ONEPASS_SINGLE ) sqlite3MultiWrite(pParse); in sqlite3DeleteFrom()
539 iKey = ++pParse->nMem; in sqlite3DeleteFrom()
558 addrBypass = sqlite3VdbeMakeLabel(pParse); in sqlite3DeleteFrom()
562 iKey = ++pParse->nMem; in sqlite3DeleteFrom()
565 sqlite3IndexAffinityStr(pParse->db, pPk), nPk); in sqlite3DeleteFrom()
586 sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenWrite, OPFLAG_FORDELETE, in sqlite3DeleteFrom()
623 sqlite3VtabMakeWritable(pParse, pTab); in sqlite3DeleteFrom()
625 sqlite3MayAbort(pParse); in sqlite3DeleteFrom()
628 if( sqlite3IsToplevel(pParse) ){ in sqlite3DeleteFrom()
629 pParse->isMultiWrite = 0; in sqlite3DeleteFrom()
637 int count = (pParse->nested==0); /* True to count changes */ in sqlite3DeleteFrom()
638 sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur, in sqlite3DeleteFrom()
659 if( pParse->nested==0 && pParse->pTriggerTab==0 ){ in sqlite3DeleteFrom()
660 sqlite3AutoincrementEnd(pParse); in sqlite3DeleteFrom()
734 Parse *pParse, /* Parsing context */ in sqlite3GenerateRowDelete() argument
746 Vdbe *v = pParse->pVdbe; /* Vdbe */ in sqlite3GenerateRowDelete()
759 iLabel = sqlite3VdbeMakeLabel(pParse); in sqlite3GenerateRowDelete()
769 if( sqlite3FkRequired(pParse, pTab, 0, 0) || pTrigger ){ in sqlite3GenerateRowDelete()
777 pParse, pTrigger, 0, 0, TRIGGER_BEFORE|TRIGGER_AFTER, pTab, onconf in sqlite3GenerateRowDelete()
779 mask |= sqlite3FkOldmask(pParse, pTab); in sqlite3GenerateRowDelete()
780 iOld = pParse->nMem+1; in sqlite3GenerateRowDelete()
781 pParse->nMem += (1 + pTab->nCol); in sqlite3GenerateRowDelete()
797 sqlite3CodeRowTrigger(pParse, pTrigger, in sqlite3GenerateRowDelete()
820 sqlite3FkCheck(pParse, pTab, iOld, 0, 0, 0); in sqlite3GenerateRowDelete()
835 sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur,0,iIdxNoSeek); in sqlite3GenerateRowDelete()
837 if( pParse->nested==0 || 0==sqlite3_stricmp(pTab->zName, "sqlite_stat1") ){ in sqlite3GenerateRowDelete()
853 sqlite3FkActions(pParse, pTab, 0, iOld, 0, 0); in sqlite3GenerateRowDelete()
856 sqlite3CodeRowTrigger(pParse, pTrigger, in sqlite3GenerateRowDelete()
886 Parse *pParse, /* Parsing and code generating context */ in sqlite3GenerateRowIndexDelete() argument
901 v = pParse->pVdbe; in sqlite3GenerateRowIndexDelete()
909 r1 = sqlite3GenerateIndexKey(pParse, pIdx, iDataCur, 0, 1, in sqlite3GenerateRowIndexDelete()
914 sqlite3ResolvePartIdxLabel(pParse, iPartIdxLabel); in sqlite3GenerateRowIndexDelete()
951 Parse *pParse, /* Parsing context */ in sqlite3GenerateIndexKey() argument
960 Vdbe *v = pParse->pVdbe; in sqlite3GenerateIndexKey()
967 *piPartIdxLabel = sqlite3VdbeMakeLabel(pParse); in sqlite3GenerateIndexKey()
968 pParse->iSelfTab = iDataCur + 1; in sqlite3GenerateIndexKey()
969 sqlite3ExprIfFalseDup(pParse, pIdx->pPartIdxWhere, *piPartIdxLabel, in sqlite3GenerateIndexKey()
971 pParse->iSelfTab = 0; in sqlite3GenerateIndexKey()
979 regBase = sqlite3GetTempRange(pParse, nCol); in sqlite3GenerateIndexKey()
989 sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iDataCur, j, regBase+j); in sqlite3GenerateIndexKey()
1003 sqlite3ReleaseTempRange(pParse, regBase, nCol); in sqlite3GenerateIndexKey()
1012 void sqlite3ResolvePartIdxLabel(Parse *pParse, int iLabel){ in sqlite3ResolvePartIdxLabel() argument
1014 sqlite3VdbeResolveLabel(pParse->pVdbe, iLabel); in sqlite3ResolvePartIdxLabel()