Lines Matching refs:db
19 void sqlite3DeleteTriggerStep(sqlite3 *db, TriggerStep *pTriggerStep){ in sqlite3DeleteTriggerStep() argument
24 sqlite3ExprDelete(db, pTmp->pWhere); in sqlite3DeleteTriggerStep()
25 sqlite3ExprListDelete(db, pTmp->pExprList); in sqlite3DeleteTriggerStep()
26 sqlite3SelectDelete(db, pTmp->pSelect); in sqlite3DeleteTriggerStep()
27 sqlite3IdListDelete(db, pTmp->pIdList); in sqlite3DeleteTriggerStep()
28 sqlite3UpsertDelete(db, pTmp->pUpsert); in sqlite3DeleteTriggerStep()
29 sqlite3SrcListDelete(db, pTmp->pFrom); in sqlite3DeleteTriggerStep()
30 sqlite3DbFree(db, pTmp->zSpan); in sqlite3DeleteTriggerStep()
32 sqlite3DbFree(db, pTmp); in sqlite3DeleteTriggerStep()
56 pTmpSchema = pParse->db->aDb[1].pSchema; in sqlite3TriggerList()
70 assert( pParse->db->pVtabCtx==0 ); in sqlite3TriggerList()
118 sqlite3 *db = pParse->db; /* The database connection */ in sqlite3BeginTrigger() local
142 if( !pTableName || db->mallocFailed ){ in sqlite3BeginTrigger()
154 if( db->init.busy && iDb!=1 ){ in sqlite3BeginTrigger()
155 sqlite3DbFree(db, pTableName->a[0].zDatabase); in sqlite3BeginTrigger()
165 if( db->init.busy==0 && pName2->n==0 && pTab in sqlite3BeginTrigger()
166 && pTab->pSchema==db->aDb[1].pSchema ){ in sqlite3BeginTrigger()
171 if( db->mallocFailed ) goto trigger_cleanup; in sqlite3BeginTrigger()
189 zName = sqlite3NameFromToken(db, pName); in sqlite3BeginTrigger()
191 assert( db->mallocFailed ); in sqlite3BeginTrigger()
197 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3BeginTrigger()
199 if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash),zName) ){ in sqlite3BeginTrigger()
203 assert( !db->init.busy ); in sqlite3BeginTrigger()
232 int iTabDb = sqlite3SchemaToIndex(db, pTab->pSchema); in sqlite3BeginTrigger()
234 const char *zDb = db->aDb[iTabDb].zDbSName; in sqlite3BeginTrigger()
235 const char *zDbTrig = isTemp ? db->aDb[1].zDbSName : zDb; in sqlite3BeginTrigger()
256 pTrigger = (Trigger*)sqlite3DbMallocZero(db, sizeof(Trigger)); in sqlite3BeginTrigger()
260 pTrigger->table = sqlite3DbStrDup(db, pTableName->a[0].zName); in sqlite3BeginTrigger()
261 pTrigger->pSchema = db->aDb[iDb].pSchema; in sqlite3BeginTrigger()
270 pTrigger->pWhen = sqlite3ExprDup(db, pWhen, EXPRDUP_REDUCE); in sqlite3BeginTrigger()
278 sqlite3DbFree(db, zName); in sqlite3BeginTrigger()
279 sqlite3SrcListDelete(db, pTableName); in sqlite3BeginTrigger()
280 sqlite3IdListDelete(db, pColumns); in sqlite3BeginTrigger()
281 sqlite3ExprDelete(db, pWhen); in sqlite3BeginTrigger()
283 sqlite3DeleteTrigger(db, pTrigger); in sqlite3BeginTrigger()
290 if( db->init.iDb==1 ){ in sqlite3BeginTrigger()
301 db->init.orphanTrigger = 1; in sqlite3BeginTrigger()
317 sqlite3 *db = pParse->db; /* The database */ in sqlite3FinishTrigger() local
325 iDb = sqlite3SchemaToIndex(pParse->db, pTrig->pSchema); in sqlite3FinishTrigger()
341 assert( !db->init.busy ); in sqlite3FinishTrigger()
350 if( !db->init.busy ){ in sqlite3FinishTrigger()
357 if( sqlite3ReadOnlyShadowTables(db) ){ in sqlite3FinishTrigger()
361 && sqlite3ShadowTableName(db, pStep->zTarget) in sqlite3FinishTrigger()
375 z = sqlite3DbStrNDup(db, (char*)pAll->z, pAll->n); in sqlite3FinishTrigger()
380 db->aDb[iDb].zDbSName, zName, in sqlite3FinishTrigger()
382 sqlite3DbFree(db, z); in sqlite3FinishTrigger()
385 sqlite3MPrintf(db, "type='trigger' AND name='%q'", zName), 0); in sqlite3FinishTrigger()
388 if( db->init.busy ){ in sqlite3FinishTrigger()
390 Hash *pHash = &db->aDb[iDb].pSchema->trigHash; in sqlite3FinishTrigger()
391 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3FinishTrigger()
395 sqlite3OomFault(db); in sqlite3FinishTrigger()
406 sqlite3DeleteTrigger(db, pTrig); in sqlite3FinishTrigger()
408 sqlite3DeleteTriggerStep(db, pStepList); in sqlite3FinishTrigger()
415 static char *triggerSpanDup(sqlite3 *db, const char *zStart, const char *zEnd){ in triggerSpanDup() argument
416 char *z = sqlite3DbSpanDup(db, zStart, zEnd); in triggerSpanDup()
430 sqlite3 *db, /* Database connection */ in sqlite3TriggerSelectStep() argument
435 TriggerStep *pTriggerStep = sqlite3DbMallocZero(db, sizeof(TriggerStep)); in sqlite3TriggerSelectStep()
437 sqlite3SelectDelete(db, pSelect); in sqlite3TriggerSelectStep()
443 pTriggerStep->zSpan = triggerSpanDup(db, zStart, zEnd); in sqlite3TriggerSelectStep()
460 sqlite3 *db = pParse->db; in triggerStepAllocate() local
464 pTriggerStep = sqlite3DbMallocZero(db, sizeof(TriggerStep) + pName->n + 1); in triggerStepAllocate()
471 pTriggerStep->zSpan = triggerSpanDup(db, zStart, zEnd); in triggerStepAllocate()
496 sqlite3 *db = pParse->db; in sqlite3TriggerInsertStep() local
499 assert(pSelect != 0 || db->mallocFailed); in sqlite3TriggerInsertStep()
507 pTriggerStep->pSelect = sqlite3SelectDup(db, pSelect, EXPRDUP_REDUCE); in sqlite3TriggerInsertStep()
517 sqlite3IdListDelete(db, pColumn); in sqlite3TriggerInsertStep()
519 sqlite3UpsertDelete(db, pUpsert); in sqlite3TriggerInsertStep()
521 sqlite3SelectDelete(db, pSelect); in sqlite3TriggerInsertStep()
541 sqlite3 *db = pParse->db; in sqlite3TriggerUpdateStep() local
554 pTriggerStep->pExprList = sqlite3ExprListDup(db, pEList, EXPRDUP_REDUCE); in sqlite3TriggerUpdateStep()
555 pTriggerStep->pWhere = sqlite3ExprDup(db, pWhere, EXPRDUP_REDUCE); in sqlite3TriggerUpdateStep()
556 pTriggerStep->pFrom = sqlite3SrcListDup(db, pFrom, EXPRDUP_REDUCE); in sqlite3TriggerUpdateStep()
560 sqlite3ExprListDelete(db, pEList); in sqlite3TriggerUpdateStep()
561 sqlite3ExprDelete(db, pWhere); in sqlite3TriggerUpdateStep()
562 sqlite3SrcListDelete(db, pFrom); in sqlite3TriggerUpdateStep()
578 sqlite3 *db = pParse->db; in sqlite3TriggerDeleteStep() local
587 pTriggerStep->pWhere = sqlite3ExprDup(db, pWhere, EXPRDUP_REDUCE); in sqlite3TriggerDeleteStep()
591 sqlite3ExprDelete(db, pWhere); in sqlite3TriggerDeleteStep()
598 void sqlite3DeleteTrigger(sqlite3 *db, Trigger *pTrigger){ in sqlite3DeleteTrigger() argument
600 sqlite3DeleteTriggerStep(db, pTrigger->step_list); in sqlite3DeleteTrigger()
601 sqlite3DbFree(db, pTrigger->zName); in sqlite3DeleteTrigger()
602 sqlite3DbFree(db, pTrigger->table); in sqlite3DeleteTrigger()
603 sqlite3ExprDelete(db, pTrigger->pWhen); in sqlite3DeleteTrigger()
604 sqlite3IdListDelete(db, pTrigger->pColumns); in sqlite3DeleteTrigger()
605 sqlite3DbFree(db, pTrigger); in sqlite3DeleteTrigger()
621 sqlite3 *db = pParse->db; in sqlite3DropTrigger() local
623 if( db->mallocFailed ) goto drop_trigger_cleanup; in sqlite3DropTrigger()
631 assert( zDb!=0 || sqlite3BtreeHoldsAllMutexes(db) ); in sqlite3DropTrigger()
632 for(i=OMIT_TEMPDB; i<db->nDb; i++){ in sqlite3DropTrigger()
634 if( zDb && sqlite3DbIsNamed(db, j, zDb)==0 ) continue; in sqlite3DropTrigger()
635 assert( sqlite3SchemaMutexHeld(db, j, 0) ); in sqlite3DropTrigger()
636 pTrigger = sqlite3HashFind(&(db->aDb[j].pSchema->trigHash), zName); in sqlite3DropTrigger()
651 sqlite3SrcListDelete(db, pName); in sqlite3DropTrigger()
669 sqlite3 *db = pParse->db; in sqlite3DropTriggerPtr() local
672 iDb = sqlite3SchemaToIndex(pParse->db, pTrigger->pSchema); in sqlite3DropTriggerPtr()
673 assert( iDb>=0 && iDb<db->nDb ); in sqlite3DropTriggerPtr()
679 const char *zDb = db->aDb[iDb].zDbSName; in sqlite3DropTriggerPtr()
694 db->aDb[iDb].zDbSName, pTrigger->zName in sqlite3DropTriggerPtr()
704 void sqlite3UnlinkAndDeleteTrigger(sqlite3 *db, int iDb, const char *zName){ in sqlite3UnlinkAndDeleteTrigger() argument
708 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3UnlinkAndDeleteTrigger()
709 pHash = &(db->aDb[iDb].pSchema->trigHash); in sqlite3UnlinkAndDeleteTrigger()
724 sqlite3DeleteTrigger(db, pTrigger); in sqlite3UnlinkAndDeleteTrigger()
725 db->mDbFlags |= DBFLAG_SchemaChange; in sqlite3UnlinkAndDeleteTrigger()
750 static int tempTriggersExist(sqlite3 *db){ in tempTriggersExist() argument
751 if( NEVER(db->aDb[1].pSchema==0) ) return 0; in tempTriggersExist()
752 if( sqliteHashFirst(&db->aDb[1].pSchema->trigHash)==0 ) return 0; in tempTriggersExist()
778 if( (pParse->db->flags & SQLITE_EnableTrigger)==0 in triggersReallyExist()
833 if( (pTab->pTrigger==0 && !tempTriggersExist(pParse->db)) in sqlite3TriggersExist()
856 sqlite3 *db = pParse->db; in sqlite3TriggerStepSrc() local
858 char *zName = sqlite3DbStrDup(db, pStep->zTarget); in sqlite3TriggerStepSrc()
865 if( pSchema!=db->aDb[1].pSchema ){ in sqlite3TriggerStepSrc()
869 SrcList *pDup = sqlite3SrcListDup(db, pStep->pFrom, 0); in sqlite3TriggerStepSrc()
881 sqlite3DbFree(db, zName); in sqlite3TriggerStepSrc()
917 sqlite3 *db = pParse->db; in sqlite3ExpandReturning() local
928 pNewExpr = sqlite3Expr(db, TK_ID, pTab->aCol[jj].zCnName); in sqlite3ExpandReturning()
930 if( !db->mallocFailed ){ in sqlite3ExpandReturning()
932 pItem->zEName = sqlite3DbStrDup(db, pTab->aCol[jj].zCnName); in sqlite3ExpandReturning()
937 Expr *pNewExpr = sqlite3ExprDup(db, pOldExpr, 0); in sqlite3ExpandReturning()
939 if( !db->mallocFailed && ALWAYS(pList->a[i].zEName!=0) ){ in sqlite3ExpandReturning()
941 pItem->zEName = sqlite3DbStrDup(db, pList->a[i].zEName); in sqlite3ExpandReturning()
961 sqlite3 *db = pParse->db; in codeReturningTrigger() local
969 assert( db->pParse==pParse ); in codeReturningTrigger()
974 sSelect.pEList = sqlite3ExprListDup(db, pReturning->pReturnEL, 0); in codeReturningTrigger()
981 assert( db->mallocFailed==0 ); in codeReturningTrigger()
984 sqlite3ExprListDelete(db, sSelect.pEList); in codeReturningTrigger()
986 if( !db->mallocFailed ){ in codeReturningTrigger()
999 && ALWAYS(!db->mallocFailed) in codeReturningTrigger()
1019 sqlite3ExprListDelete(db, pNew); in codeReturningTrigger()
1037 sqlite3 *db = pParse->db; in codeTriggerProgram() local
1062 sqlite3MPrintf(db, "-- %s", pStep->zSpan), in codeTriggerProgram()
1071 sqlite3ExprListDup(db, pStep->pExprList, 0), in codeTriggerProgram()
1072 sqlite3ExprDup(db, pStep->pWhere, 0), in codeTriggerProgram()
1081 sqlite3SelectDup(db, pStep->pSelect, 0), in codeTriggerProgram()
1082 sqlite3IdListDup(db, pStep->pIdList), in codeTriggerProgram()
1084 sqlite3UpsertDup(db, pStep->pUpsert) in codeTriggerProgram()
1092 sqlite3ExprDup(db, pStep->pWhere, 0), 0, 0 in codeTriggerProgram()
1099 Select *pSelect = sqlite3SelectDup(db, pStep->pSelect, 0); in codeTriggerProgram()
1102 sqlite3SelectDelete(db, pSelect); in codeTriggerProgram()
1142 sqlite3DbFree(pFrom->db, pFrom->zErrMsg); in transferParseError()
1157 sqlite3 *db = pParse->db; /* Database handle */ in codeRowTrigger() local
1172 pPrg = sqlite3DbMallocZero(db, sizeof(TriggerPrg)); in codeRowTrigger()
1176 pPrg->pProgram = pProgram = sqlite3DbMallocZero(db, sizeof(SubProgram)); in codeRowTrigger()
1186 sqlite3ParseObjectInit(&sSubParse, db); in codeRowTrigger()
1209 sqlite3MPrintf(db, "-- TRIGGER %s", pTrigger->zName), P4_DYNAMIC in codeRowTrigger()
1218 pWhen = sqlite3ExprDup(db, pTrigger->pWhen, 0); in codeRowTrigger()
1219 if( db->mallocFailed==0 in codeRowTrigger()
1225 sqlite3ExprDelete(db, pWhen); in codeRowTrigger()
1240 assert( db->mallocFailed==0 ); in codeRowTrigger()
1287 pParse->db->errByteOffset = -1; in getRowTrigger()
1315 int bRecursive = (p->zName && 0==(pParse->db->flags&SQLITE_RecTriggers)); in sqlite3CodeRowTriggerDirect()
1396 || p->pSchema==pParse->db->aDb[1].pSchema ); in sqlite3CodeRowTrigger()