Lines Matching refs:db
73 sqlite3DbReallocOrFree(pToplevel->db, pToplevel->aTableLock, nBytes); in lockTable()
82 sqlite3OomFault(pToplevel->db); in lockTable()
93 if( !sqlite3BtreeSharable(pParse->db->aDb[iDb].pBt) ) return; in sqlite3TableLock()
141 sqlite3 *db; in sqlite3FinishCoding() local
146 db = pParse->db; in sqlite3FinishCoding()
147 assert( db->pParse==pParse ); in sqlite3FinishCoding()
150 if( db->mallocFailed ) pParse->rc = SQLITE_NOMEM; in sqlite3FinishCoding()
153 assert( db->mallocFailed==0 ); in sqlite3FinishCoding()
160 if( db->init.busy ){ in sqlite3FinishCoding()
193 if( pParse->nTableLock>0 && db->init.busy==0 ){ in sqlite3FinishCoding()
194 sqlite3UserAuthInit(db); in sqlite3FinishCoding()
195 if( db->auth.authLevel<UAUTH_User ){ in sqlite3FinishCoding()
211 assert( db->nDb>0 ); in sqlite3FinishCoding()
217 pSchema = db->aDb[iDb].pSchema; in sqlite3FinishCoding()
225 if( db->init.busy==0 ) sqlite3VdbeChangeP5(v, 1); in sqlite3FinishCoding()
228 }while( ++iDb<db->nDb ); in sqlite3FinishCoding()
231 char *vtab = (char *)sqlite3GetVTable(db, pParse->apVtabLock[i]); in sqlite3FinishCoding()
277 assert( db->mallocFailed==0 || pParse->nErr ); in sqlite3FinishCoding()
305 sqlite3 *db = pParse->db; in sqlite3NestedParse() local
306 u32 savedDbFlags = db->mDbFlags; in sqlite3NestedParse()
312 zSql = sqlite3VMPrintf(db, zFormat, ap); in sqlite3NestedParse()
318 if( !db->mallocFailed ) pParse->rc = SQLITE_TOOBIG; in sqlite3NestedParse()
325 db->mDbFlags |= DBFLAG_PreferBuiltin; in sqlite3NestedParse()
327 db->mDbFlags = savedDbFlags; in sqlite3NestedParse()
328 sqlite3DbFree(db, zSql); in sqlite3NestedParse()
355 Table *sqlite3FindTable(sqlite3 *db, const char *zName, const char *zDatabase){ in sqlite3FindTable() argument
360 assert( zDatabase!=0 || sqlite3BtreeHoldsAllMutexes(db) ); in sqlite3FindTable()
364 if( db->auth.authLevel<UAUTH_Admin && sqlite3UserAuthTable(zName)!=0 ){ in sqlite3FindTable()
369 for(i=0; i<db->nDb; i++){ in sqlite3FindTable()
370 if( sqlite3StrICmp(zDatabase, db->aDb[i].zDbSName)==0 ) break; in sqlite3FindTable()
372 if( i>=db->nDb ){ in sqlite3FindTable()
381 p = sqlite3HashFind(&db->aDb[i].pSchema->tblHash, zName); in sqlite3FindTable()
388 p = sqlite3HashFind(&db->aDb[1].pSchema->tblHash, in sqlite3FindTable()
393 p = sqlite3HashFind(&db->aDb[i].pSchema->tblHash, in sqlite3FindTable()
400 p = sqlite3HashFind(&db->aDb[1].pSchema->tblHash, zName); in sqlite3FindTable()
403 p = sqlite3HashFind(&db->aDb[0].pSchema->tblHash, zName); in sqlite3FindTable()
406 for(i=2; i<db->nDb; i++){ in sqlite3FindTable()
407 assert( sqlite3SchemaMutexHeld(db, i, 0) ); in sqlite3FindTable()
408 p = sqlite3HashFind(&db->aDb[i].pSchema->tblHash, zName); in sqlite3FindTable()
413 p = sqlite3HashFind(&db->aDb[0].pSchema->tblHash, LEGACY_SCHEMA_TABLE); in sqlite3FindTable()
415 p = sqlite3HashFind(&db->aDb[1].pSchema->tblHash, in sqlite3FindTable()
440 sqlite3 *db = pParse->db; in sqlite3LocateTable() local
444 if( (db->mDbFlags & DBFLAG_SchemaKnownOk)==0 in sqlite3LocateTable()
450 p = sqlite3FindTable(db, zName, zDbase); in sqlite3LocateTable()
456 if( (pParse->prepFlags & SQLITE_PREPARE_NO_VTAB)==0 && db->init.busy==0 ){ in sqlite3LocateTable()
457 Module *pMod = (Module*)sqlite3HashFind(&db->aModule, zName); in sqlite3LocateTable()
459 pMod = sqlite3PragmaVtabRegister(db, zName); in sqlite3LocateTable()
504 int iDb = sqlite3SchemaToIndex(pParse->db, p->pSchema); in sqlite3LocateTableItem()
505 zDb = pParse->db->aDb[iDb].zDbSName; in sqlite3LocateTableItem()
540 Index *sqlite3FindIndex(sqlite3 *db, const char *zName, const char *zDb){ in sqlite3FindIndex() argument
544 assert( zDb!=0 || sqlite3BtreeHoldsAllMutexes(db) ); in sqlite3FindIndex()
545 for(i=OMIT_TEMPDB; i<db->nDb; i++){ in sqlite3FindIndex()
547 Schema *pSchema = db->aDb[j].pSchema; in sqlite3FindIndex()
549 if( zDb && sqlite3DbIsNamed(db, j, zDb)==0 ) continue; in sqlite3FindIndex()
550 assert( sqlite3SchemaMutexHeld(db, j, 0) ); in sqlite3FindIndex()
560 void sqlite3FreeIndex(sqlite3 *db, Index *p){ in sqlite3FreeIndex() argument
562 sqlite3DeleteIndexSamples(db, p); in sqlite3FreeIndex()
564 sqlite3ExprDelete(db, p->pPartIdxWhere); in sqlite3FreeIndex()
565 sqlite3ExprListDelete(db, p->aColExpr); in sqlite3FreeIndex()
566 sqlite3DbFree(db, p->zColAff); in sqlite3FreeIndex()
567 if( p->isResized ) sqlite3DbFree(db, (void *)p->azColl); in sqlite3FreeIndex()
571 sqlite3DbFree(db, p); in sqlite3FreeIndex()
580 void sqlite3UnlinkAndDeleteIndex(sqlite3 *db, int iDb, const char *zIdxName){ in sqlite3UnlinkAndDeleteIndex() argument
584 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3UnlinkAndDeleteIndex()
585 pHash = &db->aDb[iDb].pSchema->idxHash; in sqlite3UnlinkAndDeleteIndex()
600 sqlite3FreeIndex(db, pIndex); in sqlite3UnlinkAndDeleteIndex()
602 db->mDbFlags |= DBFLAG_SchemaChange; in sqlite3UnlinkAndDeleteIndex()
613 void sqlite3CollapseDatabaseArray(sqlite3 *db){ in sqlite3CollapseDatabaseArray() argument
615 for(i=j=2; i<db->nDb; i++){ in sqlite3CollapseDatabaseArray()
616 struct Db *pDb = &db->aDb[i]; in sqlite3CollapseDatabaseArray()
618 sqlite3DbFree(db, pDb->zDbSName); in sqlite3CollapseDatabaseArray()
623 db->aDb[j] = db->aDb[i]; in sqlite3CollapseDatabaseArray()
627 db->nDb = j; in sqlite3CollapseDatabaseArray()
628 if( db->nDb<=2 && db->aDb!=db->aDbStatic ){ in sqlite3CollapseDatabaseArray()
629 memcpy(db->aDbStatic, db->aDb, 2*sizeof(db->aDb[0])); in sqlite3CollapseDatabaseArray()
630 sqlite3DbFree(db, db->aDb); in sqlite3CollapseDatabaseArray()
631 db->aDb = db->aDbStatic; in sqlite3CollapseDatabaseArray()
640 void sqlite3ResetOneSchema(sqlite3 *db, int iDb){ in sqlite3ResetOneSchema() argument
642 assert( iDb<db->nDb ); in sqlite3ResetOneSchema()
645 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3ResetOneSchema()
646 DbSetProperty(db, iDb, DB_ResetWanted); in sqlite3ResetOneSchema()
647 DbSetProperty(db, 1, DB_ResetWanted); in sqlite3ResetOneSchema()
648 db->mDbFlags &= ~DBFLAG_SchemaKnownOk; in sqlite3ResetOneSchema()
651 if( db->nSchemaLock==0 ){ in sqlite3ResetOneSchema()
652 for(i=0; i<db->nDb; i++){ in sqlite3ResetOneSchema()
653 if( DbHasProperty(db, i, DB_ResetWanted) ){ in sqlite3ResetOneSchema()
654 sqlite3SchemaClear(db->aDb[i].pSchema); in sqlite3ResetOneSchema()
664 void sqlite3ResetAllSchemasOfConnection(sqlite3 *db){ in sqlite3ResetAllSchemasOfConnection() argument
666 sqlite3BtreeEnterAll(db); in sqlite3ResetAllSchemasOfConnection()
667 for(i=0; i<db->nDb; i++){ in sqlite3ResetAllSchemasOfConnection()
668 Db *pDb = &db->aDb[i]; in sqlite3ResetAllSchemasOfConnection()
670 if( db->nSchemaLock==0 ){ in sqlite3ResetAllSchemasOfConnection()
673 DbSetProperty(db, i, DB_ResetWanted); in sqlite3ResetAllSchemasOfConnection()
677 db->mDbFlags &= ~(DBFLAG_SchemaChange|DBFLAG_SchemaKnownOk); in sqlite3ResetAllSchemasOfConnection()
678 sqlite3VtabUnlockList(db); in sqlite3ResetAllSchemasOfConnection()
679 sqlite3BtreeLeaveAll(db); in sqlite3ResetAllSchemasOfConnection()
680 if( db->nSchemaLock==0 ){ in sqlite3ResetAllSchemasOfConnection()
681 sqlite3CollapseDatabaseArray(db); in sqlite3ResetAllSchemasOfConnection()
688 void sqlite3CommitInternalChanges(sqlite3 *db){ in sqlite3CommitInternalChanges() argument
689 db->mDbFlags &= ~DBFLAG_SchemaChange; in sqlite3CommitInternalChanges()
713 sqlite3ExprDelete(pParse->db, pList->a[pCol->iDflt-1].pExpr); in sqlite3ColumnSetExpr()
735 sqlite3 *db, in sqlite3ColumnSetColl() argument
748 zNew = sqlite3DbRealloc(db, pCol->zCnName, nColl+n); in sqlite3ColumnSetColl()
774 void sqlite3DeleteColumnNames(sqlite3 *db, Table *pTable){ in sqlite3DeleteColumnNames() argument
778 assert( db!=0 ); in sqlite3DeleteColumnNames()
782 sqlite3DbFree(db, pCol->zCnName); in sqlite3DeleteColumnNames()
784 sqlite3DbNNFreeNN(db, pTable->aCol); in sqlite3DeleteColumnNames()
786 sqlite3ExprListDelete(db, pTable->u.tab.pDfltList); in sqlite3DeleteColumnNames()
788 if( db->pnBytesFreed==0 ){ in sqlite3DeleteColumnNames()
813 static void SQLITE_NOINLINE deleteTable(sqlite3 *db, Table *pTable){ in deleteTable() argument
825 assert( db!=0 ); in deleteTable()
826 if( !db->mallocFailed && (pTable->tabFlags & TF_Ephemeral)==0 ){ in deleteTable()
827 nLookaside = sqlite3LookasideUsed(db, 0); in deleteTable()
836 if( db->pnBytesFreed==0 && !IsVirtual(pTable) ){ in deleteTable()
841 assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) ); in deleteTable()
844 sqlite3FreeIndex(db, pIndex); in deleteTable()
848 sqlite3FkDelete(db, pTable); in deleteTable()
852 sqlite3VtabClear(db, pTable); in deleteTable()
857 sqlite3SelectDelete(db, pTable->u.view.pSelect); in deleteTable()
862 sqlite3DeleteColumnNames(db, pTable); in deleteTable()
863 sqlite3DbFree(db, pTable->zName); in deleteTable()
864 sqlite3DbFree(db, pTable->zColAff); in deleteTable()
865 sqlite3ExprListDelete(db, pTable->pCheck); in deleteTable()
866 sqlite3DbFree(db, pTable); in deleteTable()
869 assert( nLookaside==0 || nLookaside==sqlite3LookasideUsed(db,0) ); in deleteTable()
871 void sqlite3DeleteTable(sqlite3 *db, Table *pTable){ in sqlite3DeleteTable() argument
873 assert( db!=0 ); in sqlite3DeleteTable()
875 if( db->pnBytesFreed==0 && (--pTable->nTabRef)>0 ) return; in sqlite3DeleteTable()
876 deleteTable(db, pTable); in sqlite3DeleteTable()
884 void sqlite3UnlinkAndDeleteTable(sqlite3 *db, int iDb, const char *zTabName){ in sqlite3UnlinkAndDeleteTable() argument
888 assert( db!=0 ); in sqlite3UnlinkAndDeleteTable()
889 assert( iDb>=0 && iDb<db->nDb ); in sqlite3UnlinkAndDeleteTable()
891 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3UnlinkAndDeleteTable()
893 pDb = &db->aDb[iDb]; in sqlite3UnlinkAndDeleteTable()
895 sqlite3DeleteTable(db, p); in sqlite3UnlinkAndDeleteTable()
896 db->mDbFlags |= DBFLAG_SchemaChange; in sqlite3UnlinkAndDeleteTable()
912 char *sqlite3NameFromToken(sqlite3 *db, const Token *pName){ in sqlite3NameFromToken() argument
915 zName = sqlite3DbStrNDup(db, (const char*)pName->z, pName->n); in sqlite3NameFromToken()
942 int sqlite3FindDbName(sqlite3 *db, const char *zName){ in sqlite3FindDbName() argument
946 for(i=(db->nDb-1), pDb=&db->aDb[i]; i>=0; i--, pDb--){ in sqlite3FindDbName()
962 int sqlite3FindDb(sqlite3 *db, Token *pName){ in sqlite3FindDb() argument
965 zName = sqlite3NameFromToken(db, pName); in sqlite3FindDb()
966 i = sqlite3FindDbName(db, zName); in sqlite3FindDb()
967 sqlite3DbFree(db, zName); in sqlite3FindDb()
994 sqlite3 *db = pParse->db; in sqlite3TwoPartName() local
998 if( db->init.busy ) { in sqlite3TwoPartName()
1003 iDb = sqlite3FindDb(db, pName1); in sqlite3TwoPartName()
1009 assert( db->init.iDb==0 || db->init.busy || IN_SPECIAL_PARSE in sqlite3TwoPartName()
1010 || (db->mDbFlags & DBFLAG_Vacuum)!=0); in sqlite3TwoPartName()
1011 iDb = db->init.iDb; in sqlite3TwoPartName()
1020 int sqlite3WritableSchema(sqlite3 *db){ in sqlite3WritableSchema() argument
1021 testcase( (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))==0 ); in sqlite3WritableSchema()
1022 testcase( (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))== in sqlite3WritableSchema()
1024 testcase( (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))== in sqlite3WritableSchema()
1026 testcase( (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))== in sqlite3WritableSchema()
1028 return (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))==SQLITE_WriteSchema; in sqlite3WritableSchema()
1048 sqlite3 *db = pParse->db; in sqlite3CheckObjectName() local
1049 if( sqlite3WritableSchema(db) in sqlite3CheckObjectName()
1050 || db->init.imposterTable in sqlite3CheckObjectName()
1056 if( db->init.busy ){ in sqlite3CheckObjectName()
1057 if( sqlite3_stricmp(zType, db->init.azInit[0]) in sqlite3CheckObjectName()
1058 || sqlite3_stricmp(zName, db->init.azInit[1]) in sqlite3CheckObjectName()
1059 || sqlite3_stricmp(zTblName, db->init.azInit[2]) in sqlite3CheckObjectName()
1066 || (sqlite3ReadOnlyShadowTables(db) && sqlite3ShadowTableName(db, zName)) in sqlite3CheckObjectName()
1222 sqlite3 *db = pParse->db; in sqlite3StartTable() local
1227 if( db->init.busy && db->init.newTnum==1 ){ in sqlite3StartTable()
1229 iDb = db->init.iDb; in sqlite3StartTable()
1230 zName = sqlite3DbStrDup(db, SCHEMA_TABLE(iDb)); in sqlite3StartTable()
1243 zName = sqlite3NameFromToken(db, pName); in sqlite3StartTable()
1253 if( db->init.iDb==1 ) isTemp = 1; in sqlite3StartTable()
1264 char *zDb = db->aDb[iDb].zDbSName; in sqlite3StartTable()
1283 char *zDb = db->aDb[iDb].zDbSName; in sqlite3StartTable()
1287 pTable = sqlite3FindTable(db, zName, zDb); in sqlite3StartTable()
1293 assert( !db->init.busy || CORRUPT_DB ); in sqlite3StartTable()
1299 if( sqlite3FindIndex(db, zName, zDb)!=0 ){ in sqlite3StartTable()
1305 pTable = sqlite3DbMallocZero(db, sizeof(Table)); in sqlite3StartTable()
1307 assert( db->mallocFailed ); in sqlite3StartTable()
1314 pTable->pSchema = db->aDb[iDb].pSchema; in sqlite3StartTable()
1332 if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){ in sqlite3StartTable()
1355 fileFormat = (db->flags & SQLITE_LegacyFileFmt)!=0 ? in sqlite3StartTable()
1358 sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_TEXT_ENCODING, ENC(db)); in sqlite3StartTable()
1394 sqlite3DbFree(db, zName); in sqlite3StartTable()
1422 static void sqlite3DeleteReturning(sqlite3 *db, Returning *pRet){ in sqlite3DeleteReturning() argument
1424 pHash = &(db->aDb[1].pSchema->trigHash); in sqlite3DeleteReturning()
1426 sqlite3ExprListDelete(db, pRet->pReturnEL); in sqlite3DeleteReturning()
1427 sqlite3DbFree(db, pRet); in sqlite3DeleteReturning()
1449 sqlite3 *db = pParse->db; in sqlite3AddReturning() local
1456 pRet = sqlite3DbMallocZero(db, sizeof(*pRet)); in sqlite3AddReturning()
1458 sqlite3ExprListDelete(db, pList); in sqlite3AddReturning()
1467 if( db->mallocFailed ) return; in sqlite3AddReturning()
1472 pRet->retTrig.pSchema = db->aDb[1].pSchema; in sqlite3AddReturning()
1473 pRet->retTrig.pTabSchema = db->aDb[1].pSchema; in sqlite3AddReturning()
1478 pHash = &(db->aDb[1].pSchema->trigHash); in sqlite3AddReturning()
1482 sqlite3OomFault(db); in sqlite3AddReturning()
1500 sqlite3 *db = pParse->db; in sqlite3AddColumn() local
1508 if( p->nCol+1>db->aLimit[SQLITE_LIMIT_COLUMN] ){ in sqlite3AddColumn()
1549 z = sqlite3DbMallocRaw(db, (i64)sName.n + 1 + (i64)sType.n + (sType.n>0) ); in sqlite3AddColumn()
1559 sqlite3DbFree(db, z); in sqlite3AddColumn()
1563 aNew = sqlite3DbRealloc(db,p->aCol,((i64)p->nCol+1)*sizeof(p->aCol[0])); in sqlite3AddColumn()
1565 sqlite3DbFree(db, z); in sqlite3AddColumn()
1739 sqlite3 *db = pParse->db; in sqlite3AddDefaultValue() local
1742 int isInit = db->init.busy && db->init.iDb!=1; in sqlite3AddDefaultValue()
1760 x.u.zToken = sqlite3DbSpanDup(db, zStart, zEnd); in sqlite3AddDefaultValue()
1763 pDfltExpr = sqlite3ExprDup(db, &x, EXPRDUP_REDUCE); in sqlite3AddDefaultValue()
1764 sqlite3DbFree(db, x.u.zToken); in sqlite3AddDefaultValue()
1771 sqlite3ExprDelete(db, pExpr); in sqlite3AddDefaultValue()
1901 sqlite3ExprListDelete(pParse->db, pList); in sqlite3AddPrimaryKey()
1916 sqlite3 *db = pParse->db; in sqlite3AddCheckConstraint() local
1918 && !sqlite3BtreeIsReadonly(db->aDb[db->init.iDb].pBt) in sqlite3AddCheckConstraint()
1934 sqlite3ExprDelete(pParse->db, pCheckExpr); in sqlite3AddCheckConstraint()
1946 sqlite3 *db; in sqlite3AddCollateType() local
1950 db = pParse->db; in sqlite3AddCollateType()
1951 zColl = sqlite3NameFromToken(db, pToken); in sqlite3AddCollateType()
1956 sqlite3ColumnSetColl(db, &p->aCol[i], zColl); in sqlite3AddCollateType()
1969 sqlite3DbFree(db, zColl); in sqlite3AddCollateType()
2015 sqlite3ExprDelete(pParse->db, pExpr); in sqlite3AddGenerated()
2020 sqlite3ExprDelete(pParse->db, pExpr); in sqlite3AddGenerated()
2044 sqlite3 *db = pParse->db; in sqlite3ChangeCookie() local
2046 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3ChangeCookie()
2048 (int)(1+(unsigned)db->aDb[iDb].pSchema->schema_cookie)); in sqlite3ChangeCookie()
2108 static char *createTableStmt(sqlite3 *db, Table *p){ in createTableStmt() argument
2130 sqlite3OomFault(db); in createTableStmt()
2176 static int resizeIndexObject(sqlite3 *db, Index *pIdx, int N){ in resizeIndexObject() argument
2182 zExtra = sqlite3DbMallocZero(db, nByte); in resizeIndexObject()
2341 sqlite3 *db = pParse->db; in convertToWithoutRowidTable() local
2346 if( !db->init.imposterTable ){ in convertToWithoutRowidTable()
2374 sqlite3ExprAlloc(db, TK_ID, &ipkToken, 0)); in convertToWithoutRowidTable()
2391 assert( db->mallocFailed==0 ); in convertToWithoutRowidTable()
2417 if( !db->init.imposterTable ) pPk->uniqNotNull = 1; in convertToWithoutRowidTable()
2425 assert( db->init.busy==0 ); in convertToWithoutRowidTable()
2449 if( resizeIndexObject(db, pIdx, pIdx->nKeyCol+n) ) return; in convertToWithoutRowidTable()
2473 if( resizeIndexObject(db, pPk, nPk+nExtra) ) return; in convertToWithoutRowidTable()
2495 int sqlite3IsShadowTableOf(sqlite3 *db, Table *pTab, const char *zName){ in sqlite3IsShadowTableOf() argument
2503 pMod = (Module*)sqlite3HashFind(&db->aModule, pTab->u.vtab.azArg[0]); in sqlite3IsShadowTableOf()
2518 void sqlite3MarkAllShadowTablesOf(sqlite3 *db, Table *pTab){ in sqlite3MarkAllShadowTablesOf() argument
2524 pMod = (Module*)sqlite3HashFind(&db->aModule, pTab->u.vtab.azArg[0]); in sqlite3MarkAllShadowTablesOf()
2554 int sqlite3ShadowTableName(sqlite3 *db, const char *zName){ in sqlite3ShadowTableName() argument
2560 pTab = sqlite3FindTable(db, zName, 0); in sqlite3ShadowTableName()
2564 return sqlite3IsShadowTableOf(db, pTab, zName); in sqlite3ShadowTableName()
2623 sqlite3 *db = pParse->db; /* The database connection */ in sqlite3EndTable() local
2633 if( pSelect==0 && sqlite3ShadowTableName(db, p->zName) ){ in sqlite3EndTable()
2646 if( db->init.busy ){ in sqlite3EndTable()
2647 if( pSelect || (!IsOrdinaryTable(p) && db->init.newTnum) ){ in sqlite3EndTable()
2651 p->tnum = db->init.newTnum; in sqlite3EndTable()
2712 iDb = sqlite3SchemaToIndex(db, p->pSchema); in sqlite3EndTable()
2722 sqlite3ExprListDelete(db, p->pCheck); in sqlite3EndTable()
2748 sqlite3ExprAlloc(db, TK_NULL, 0, 0)); in sqlite3EndTable()
2773 if( !db->init.busy ){ in sqlite3EndTable()
2845 sqlite3DeleteTable(db, pSelTab); in sqlite3EndTable()
2864 zStmt = createTableStmt(db, p); in sqlite3EndTable()
2869 zStmt = sqlite3MPrintf(db, in sqlite3EndTable()
2882 db->aDb[iDb].zDbSName, in sqlite3EndTable()
2890 sqlite3DbFree(db, zStmt); in sqlite3EndTable()
2898 Db *pDb = &db->aDb[iDb]; in sqlite3EndTable()
2899 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3EndTable()
2911 sqlite3MPrintf(db, "tbl_name='%q' AND type!='trigger'", p->zName),0); in sqlite3EndTable()
2916 if( db->init.busy ){ in sqlite3EndTable()
2919 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3EndTable()
2924 sqlite3OomFault(db); in sqlite3EndTable()
2928 db->mDbFlags |= DBFLAG_SchemaChange; in sqlite3EndTable()
2936 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3EndTable()
2974 sqlite3 *db = pParse->db; in sqlite3CreateView() local
2994 iDb = sqlite3SchemaToIndex(db, p->pSchema); in sqlite3CreateView()
3008 p->u.view.pSelect = sqlite3SelectDup(db, pSelect, EXPRDUP_REDUCE); in sqlite3CreateView()
3010 p->pCheck = sqlite3ExprListDup(db, pCNames, EXPRDUP_REDUCE); in sqlite3CreateView()
3012 if( db->mallocFailed ) goto create_view_fail; in sqlite3CreateView()
3034 sqlite3SelectDelete(db, pSelect); in sqlite3CreateView()
3038 sqlite3ExprListDelete(db, pCNames); in sqlite3CreateView()
3053 sqlite3 *db = pParse->db; /* Database connection for malloc errors */ in viewGetColumnNames() local
3065 db->nSchemaLock++; in viewGetColumnNames()
3067 db->nSchemaLock--; in viewGetColumnNames()
3108 pSel = sqlite3SelectDup(db, pTable->u.view.pSelect, 0); in viewGetColumnNames()
3118 xAuth = db->xAuth; in viewGetColumnNames()
3119 db->xAuth = 0; in viewGetColumnNames()
3121 db->xAuth = xAuth; in viewGetColumnNames()
3142 assert( db->mallocFailed==0 ); in viewGetColumnNames()
3156 assert( sqlite3SchemaMutexHeld(db, 0, pTable->pSchema) ); in viewGetColumnNames()
3159 sqlite3DeleteTable(db, pSelTab); in viewGetColumnNames()
3160 sqlite3SelectDelete(db, pSel); in viewGetColumnNames()
3167 if( db->mallocFailed ){ in viewGetColumnNames()
3168 sqlite3DeleteColumnNames(db, pTable); in viewGetColumnNames()
3184 static void sqliteViewResetAll(sqlite3 *db, int idx){ in sqliteViewResetAll() argument
3186 assert( sqlite3SchemaMutexHeld(db, idx, 0) ); in sqliteViewResetAll()
3187 if( !DbHasProperty(db, idx, DB_UnresetViews) ) return; in sqliteViewResetAll()
3188 for(i=sqliteHashFirst(&db->aDb[idx].pSchema->tblHash); i;i=sqliteHashNext(i)){ in sqliteViewResetAll()
3191 sqlite3DeleteColumnNames(db, pTab); in sqliteViewResetAll()
3194 DbClearProperty(db, idx, DB_UnresetViews); in sqliteViewResetAll()
3218 void sqlite3RootPageMoved(sqlite3 *db, int iDb, Pgno iFrom, Pgno iTo){ in sqlite3RootPageMoved() argument
3223 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3RootPageMoved()
3224 pDb = &db->aDb[iDb]; in sqlite3RootPageMoved()
3267 pParse->db->aDb[iDb].zDbSName, iTable, r1, r1); in destroyRootPage()
3315 int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); in destroyTable()
3316 assert( iDb>=0 && iDb<pParse->db->nDb ); in destroyTable()
3334 const char *zDbName = pParse->db->aDb[iDb].zDbSName; in sqlite3ClearStatTables()
3338 if( sqlite3FindTable(pParse->db, zTab, zDbName) ){ in sqlite3ClearStatTables()
3352 sqlite3 *db = pParse->db; in sqlite3CodeDropTable() local
3354 Db *pDb = &db->aDb[iDb]; in sqlite3CodeDropTable()
3373 pTrigger->pSchema==db->aDb[1].pSchema ); in sqlite3CodeDropTable()
3416 sqliteViewResetAll(db, iDb); in sqlite3CodeDropTable()
3423 int sqlite3ReadOnlyShadowTables(sqlite3 *db){ in sqlite3ReadOnlyShadowTables() argument
3425 if( (db->flags & SQLITE_Defensive)!=0 in sqlite3ReadOnlyShadowTables()
3426 && db->pVtabCtx==0 in sqlite3ReadOnlyShadowTables()
3427 && db->nVdbeExec==0 in sqlite3ReadOnlyShadowTables()
3428 && !sqlite3VtabInSync(db) in sqlite3ReadOnlyShadowTables()
3439 static int tableMayNotBeDropped(sqlite3 *db, Table *pTab){ in tableMayNotBeDropped() argument
3445 if( (pTab->tabFlags & TF_Shadow)!=0 && sqlite3ReadOnlyShadowTables(db) ){ in tableMayNotBeDropped()
3461 sqlite3 *db = pParse->db; in sqlite3DropTable() local
3464 if( db->mallocFailed ){ in sqlite3DropTable()
3470 if( noErr ) db->suppressErr++; in sqlite3DropTable()
3473 if( noErr ) db->suppressErr--; in sqlite3DropTable()
3482 iDb = sqlite3SchemaToIndex(db, pTab->pSchema); in sqlite3DropTable()
3483 assert( iDb>=0 && iDb<db->nDb ); in sqlite3DropTable()
3495 const char *zDb = db->aDb[iDb].zDbSName; in sqlite3DropTable()
3509 zArg2 = sqlite3GetVTable(db, pTab)->pMod->zName; in sqlite3DropTable()
3526 if( tableMayNotBeDropped(db, pTab) ){ in sqlite3DropTable()
3559 sqlite3SrcListDelete(db, pName); in sqlite3DropTable()
3585 sqlite3 *db = pParse->db; in sqlite3CreateForeignKey() local
3621 pFKey = sqlite3DbMallocZero(db, nByte ); in sqlite3CreateForeignKey()
3676 assert( sqlite3SchemaMutexHeld(db, 0, p->pSchema) ); in sqlite3CreateForeignKey()
3681 sqlite3OomFault(db); in sqlite3CreateForeignKey()
3697 sqlite3DbFree(db, pFKey); in sqlite3CreateForeignKey()
3699 sqlite3ExprListDelete(db, pFromCol); in sqlite3CreateForeignKey()
3700 sqlite3ExprListDelete(db, pToCol); in sqlite3CreateForeignKey()
3745 sqlite3 *db = pParse->db; /* The database connection */ in sqlite3RefillIndex() local
3746 int iDb = sqlite3SchemaToIndex(db, pIndex->pSchema); in sqlite3RefillIndex()
3750 db->aDb[iDb].zDbSName ) ){ in sqlite3RefillIndex()
3840 sqlite3 *db, /* Database connection */ in sqlite3AllocateIndexObject() argument
3853 p = sqlite3DbMallocZero(db, nByte + nExtra); in sqlite3AllocateIndexObject()
3920 sqlite3 *db = pParse->db; in sqlite3CreateIndex() local
3930 assert( db->pParse==pParse ); in sqlite3CreateIndex()
3934 assert( db->mallocFailed==0 ); in sqlite3CreateIndex()
3964 if( !db->init.busy ){ in sqlite3CreateIndex()
3966 if( pName2->n==0 && pTab && pTab->pSchema==db->aDb[1].pSchema ){ in sqlite3CreateIndex()
3979 assert( db->mallocFailed==0 || pTab==0 ); in sqlite3CreateIndex()
3981 if( iDb==1 && db->aDb[iDb].pSchema!=pTab->pSchema ){ in sqlite3CreateIndex()
3993 iDb = sqlite3SchemaToIndex(db, pTab->pSchema); in sqlite3CreateIndex()
3995 pDb = &db->aDb[iDb]; in sqlite3CreateIndex()
3999 && db->init.busy==0 in sqlite3CreateIndex()
4035 zName = sqlite3NameFromToken(db, pName); in sqlite3CreateIndex()
4042 if( !db->init.busy ){ in sqlite3CreateIndex()
4043 if( sqlite3FindTable(db, zName, pDb->zDbSName)!=0 ){ in sqlite3CreateIndex()
4048 if( sqlite3FindIndex(db, zName, pDb->zDbSName)!=0 ){ in sqlite3CreateIndex()
4052 assert( !db->init.busy ); in sqlite3CreateIndex()
4063 zName = sqlite3MPrintf(db, "sqlite_autoindex_%s_%d", pTab->zName, n); in sqlite3CreateIndex()
4102 sqlite3ExprAlloc(db, TK_ID, &prevCol, 0)); in sqlite3CreateIndex()
4129 pIndex = sqlite3AllocateIndexObject(db, pList->nExpr + nExtraCol, in sqlite3CreateIndex()
4131 if( db->mallocFailed ){ in sqlite3CreateIndex()
4143 pIndex->pSchema = db->aDb[iDb].pSchema; in sqlite3CreateIndex()
4150 assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); in sqlite3CreateIndex()
4228 if( !db->init.busy && !sqlite3LocateCollSeq(pParse, zColl) ){ in sqlite3CreateIndex()
4350 if( db->init.busy ){ in sqlite3CreateIndex()
4353 assert( sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) ); in sqlite3CreateIndex()
4355 pIndex->tnum = db->init.newTnum; in sqlite3CreateIndex()
4366 sqlite3OomFault(db); in sqlite3CreateIndex()
4369 db->mDbFlags |= DBFLAG_SchemaChange; in sqlite3CreateIndex()
4412 zStmt = sqlite3MPrintf(db, "CREATE%s INDEX %.*s", in sqlite3CreateIndex()
4424 db->aDb[iDb].zDbSName, in sqlite3CreateIndex()
4430 sqlite3DbFree(db, zStmt); in sqlite3CreateIndex()
4439 sqlite3MPrintf(db, "name='%q' AND type='index'", pIndex->zName), 0); in sqlite3CreateIndex()
4446 if( db->init.busy || pTblName==0 ){ in sqlite3CreateIndex()
4459 if( pIndex ) sqlite3FreeIndex(db, pIndex); in sqlite3CreateIndex()
4489 sqlite3ExprDelete(db, pPIWhere); in sqlite3CreateIndex()
4490 sqlite3ExprListDelete(db, pList); in sqlite3CreateIndex()
4491 sqlite3SrcListDelete(db, pTblName); in sqlite3CreateIndex()
4492 sqlite3DbFree(db, zName); in sqlite3CreateIndex()
4560 sqlite3 *db = pParse->db; in sqlite3DropIndex() local
4563 if( db->mallocFailed ){ in sqlite3DropIndex()
4571 pIndex = sqlite3FindIndex(db, pName->a[0].zName, pName->a[0].zDatabase); in sqlite3DropIndex()
4587 iDb = sqlite3SchemaToIndex(db, pIndex->pSchema); in sqlite3DropIndex()
4592 const char *zDb = db->aDb[iDb].zDbSName; in sqlite3DropIndex()
4610 db->aDb[iDb].zDbSName, pIndex->zName in sqlite3DropIndex()
4619 sqlite3SrcListDelete(db, pName); in sqlite3DropIndex()
4640 sqlite3 *db, /* Connection to notify of malloc failures */ in sqlite3ArrayAllocate() argument
4650 void *pNew = sqlite3DbRealloc(db, pArray, sz*szEntry); in sqlite3ArrayAllocate()
4670 sqlite3 *db = pParse->db; in sqlite3IdListAppend() local
4673 pList = sqlite3DbMallocZero(db, sizeof(IdList) ); in sqlite3IdListAppend()
4677 pNew = sqlite3DbRealloc(db, pList, in sqlite3IdListAppend()
4680 sqlite3IdListDelete(db, pList); in sqlite3IdListAppend()
4686 pList->a[i].zName = sqlite3NameFromToken(db, pToken); in sqlite3IdListAppend()
4696 void sqlite3IdListDelete(sqlite3 *db, IdList *pList){ in sqlite3IdListDelete() argument
4698 assert( db!=0 ); in sqlite3IdListDelete()
4702 sqlite3DbFree(db, pList->a[i].zName); in sqlite3IdListDelete()
4704 sqlite3DbNNFreeNN(db, pList); in sqlite3IdListDelete()
4770 sqlite3 *db = pParse->db; in sqlite3SrcListEnlarge() local
4778 pNew = sqlite3DbRealloc(db, pSrc, in sqlite3SrcListEnlarge()
4781 assert( db->mallocFailed ); in sqlite3SrcListEnlarge()
4848 sqlite3 *db; in sqlite3SrcListAppend() local
4851 assert( pParse->db!=0 ); in sqlite3SrcListAppend()
4852 db = pParse->db; in sqlite3SrcListAppend()
4854 pList = sqlite3DbMallocRawNN(pParse->db, sizeof(SrcList) ); in sqlite3SrcListAppend()
4863 sqlite3SrcListDelete(db, pList); in sqlite3SrcListAppend()
4874 pItem->zName = sqlite3NameFromToken(db, pDatabase); in sqlite3SrcListAppend()
4875 pItem->zDatabase = sqlite3NameFromToken(db, pTable); in sqlite3SrcListAppend()
4877 pItem->zName = sqlite3NameFromToken(db, pTable); in sqlite3SrcListAppend()
4889 assert( pList || pParse->db->mallocFailed ); in sqlite3SrcListAssignCursors()
4904 void sqlite3SrcListDelete(sqlite3 *db, SrcList *pList){ in sqlite3SrcListDelete() argument
4907 assert( db!=0 ); in sqlite3SrcListDelete()
4910 if( pItem->zDatabase ) sqlite3DbNNFreeNN(db, pItem->zDatabase); in sqlite3SrcListDelete()
4911 if( pItem->zName ) sqlite3DbNNFreeNN(db, pItem->zName); in sqlite3SrcListDelete()
4912 if( pItem->zAlias ) sqlite3DbNNFreeNN(db, pItem->zAlias); in sqlite3SrcListDelete()
4913 if( pItem->fg.isIndexedBy ) sqlite3DbFree(db, pItem->u1.zIndexedBy); in sqlite3SrcListDelete()
4914 if( pItem->fg.isTabFunc ) sqlite3ExprListDelete(db, pItem->u1.pFuncArg); in sqlite3SrcListDelete()
4915 sqlite3DeleteTable(db, pItem->pTab); in sqlite3SrcListDelete()
4916 if( pItem->pSelect ) sqlite3SelectDelete(db, pItem->pSelect); in sqlite3SrcListDelete()
4918 sqlite3IdListDelete(db, pItem->u3.pUsing); in sqlite3SrcListDelete()
4920 sqlite3ExprDelete(db, pItem->u3.pOn); in sqlite3SrcListDelete()
4923 sqlite3DbNNFreeNN(db, pList); in sqlite3SrcListDelete()
4952 sqlite3 *db = pParse->db; in sqlite3SrcListAppendFromTerm() local
4973 pItem->zAlias = sqlite3NameFromToken(db, pAlias); in sqlite3SrcListAppendFromTerm()
4995 sqlite3ClearOnOrUsing(db, pOnUsing); in sqlite3SrcListAppendFromTerm()
4996 sqlite3SelectDelete(db, pSubquery); in sqlite3SrcListAppendFromTerm()
5018 pItem->u1.zIndexedBy = sqlite3NameFromToken(pParse->db, pIndexedBy); in sqlite3SrcListIndexedBy()
5035 sqlite3SrcListDelete(pParse->db, p2); in sqlite3SrcListAppendList()
5039 sqlite3DbFree(pParse->db, p2); in sqlite3SrcListAppendList()
5059 sqlite3ExprListDelete(pParse->db, pList); in sqlite3SrcListFuncArgs()
5112 sqlite3 *db; in sqlite3BeginTransaction() local
5117 db = pParse->db; in sqlite3BeginTransaction()
5118 assert( db!=0 ); in sqlite3BeginTransaction()
5125 for(i=0; i<db->nDb; i++){ in sqlite3BeginTransaction()
5127 Btree *pBt = db->aDb[i].pBt; in sqlite3BeginTransaction()
5152 assert( pParse->db!=0 ); in sqlite3EndTransaction()
5170 char *zName = sqlite3NameFromToken(pParse->db, pName); in sqlite3Savepoint()
5178 sqlite3DbFree(pParse->db, zName); in sqlite3Savepoint()
5190 sqlite3 *db = pParse->db; in sqlite3OpenTempDatabase() local
5191 if( db->aDb[1].pBt==0 && !pParse->explain ){ in sqlite3OpenTempDatabase()
5201 rc = sqlite3BtreeOpen(db->pVfs, 0, db, &pBt, 0, flags); in sqlite3OpenTempDatabase()
5208 db->aDb[1].pBt = pBt; in sqlite3OpenTempDatabase()
5209 assert( db->aDb[1].pSchema ); in sqlite3OpenTempDatabase()
5210 if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, 0, 0) ){ in sqlite3OpenTempDatabase()
5211 sqlite3OomFault(db); in sqlite3OpenTempDatabase()
5225 assert( iDb>=0 && iDb<pToplevel->db->nDb ); in sqlite3CodeVerifySchemaAtToplevel()
5226 assert( pToplevel->db->aDb[iDb].pBt!=0 || iDb==1 ); in sqlite3CodeVerifySchemaAtToplevel()
5228 assert( sqlite3SchemaMutexHeld(pToplevel->db, iDb, 0) ); in sqlite3CodeVerifySchemaAtToplevel()
5246 sqlite3 *db = pParse->db; in sqlite3CodeVerifyNamedSchema() local
5248 for(i=0; i<db->nDb; i++){ in sqlite3CodeVerifyNamedSchema()
5249 Db *pDb = &db->aDb[i]; in sqlite3CodeVerifyNamedSchema()
5346 sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, in sqlite3UniqueConstraint()
5347 pParse->db->aLimit[SQLITE_LIMIT_LENGTH]); in sqlite3UniqueConstraint()
5380 zMsg = sqlite3MPrintf(pParse->db, "%s.%s", pTab->zName, in sqlite3RowidConstraint()
5384 zMsg = sqlite3MPrintf(pParse->db, "%s.rowid", pTab->zName); in sqlite3RowidConstraint()
5421 int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); in reindexTable()
5439 sqlite3 *db = pParse->db; /* The database connection */ in reindexDatabases() local
5443 assert( sqlite3BtreeHoldsAllMutexes(db) ); /* Needed for schema access */ in reindexDatabases()
5444 for(iDb=0, pDb=db->aDb; iDb<db->nDb; iDb++, pDb++){ in reindexDatabases()
5475 sqlite3 *db = pParse->db; /* The database connection */ in sqlite3Reindex() local
5490 zColl = sqlite3NameFromToken(pParse->db, pName1); in sqlite3Reindex()
5492 pColl = sqlite3FindCollSeq(db, ENC(db), zColl, 0); in sqlite3Reindex()
5495 sqlite3DbFree(db, zColl); in sqlite3Reindex()
5498 sqlite3DbFree(db, zColl); in sqlite3Reindex()
5502 z = sqlite3NameFromToken(db, pObjName); in sqlite3Reindex()
5504 zDb = db->aDb[iDb].zDbSName; in sqlite3Reindex()
5505 pTab = sqlite3FindTable(db, z, zDb); in sqlite3Reindex()
5508 sqlite3DbFree(db, z); in sqlite3Reindex()
5511 pIndex = sqlite3FindIndex(db, z, zDb); in sqlite3Reindex()
5512 sqlite3DbFree(db, z); in sqlite3Reindex()
5535 pKey = sqlite3KeyInfoAlloc(pParse->db, nKey, nCol-nKey); in sqlite3KeyInfoOfIndex()
5537 pKey = sqlite3KeyInfoAlloc(pParse->db, nCol, 0); in sqlite3KeyInfoOfIndex()
5580 sqlite3 *db = pParse->db; in sqlite3CteNew() local
5582 pNew = sqlite3DbMallocZero(db, sizeof(*pNew)); in sqlite3CteNew()
5583 assert( pNew!=0 || db->mallocFailed ); in sqlite3CteNew()
5585 if( db->mallocFailed ){ in sqlite3CteNew()
5586 sqlite3ExprListDelete(db, pArglist); in sqlite3CteNew()
5587 sqlite3SelectDelete(db, pQuery); in sqlite3CteNew()
5591 pNew->zName = sqlite3NameFromToken(pParse->db, pName); in sqlite3CteNew()
5601 static void cteClear(sqlite3 *db, Cte *pCte){ in cteClear() argument
5603 sqlite3ExprListDelete(db, pCte->pCols); in cteClear()
5604 sqlite3SelectDelete(db, pCte->pSelect); in cteClear()
5605 sqlite3DbFree(db, pCte->zName); in cteClear()
5611 void sqlite3CteDelete(sqlite3 *db, Cte *pCte){ in sqlite3CteDelete() argument
5613 cteClear(db, pCte); in sqlite3CteDelete()
5614 sqlite3DbFree(db, pCte); in sqlite3CteDelete()
5628 sqlite3 *db = pParse->db; in sqlite3WithAdd() local
5650 pNew = sqlite3DbRealloc(db, pWith, nByte); in sqlite3WithAdd()
5652 pNew = sqlite3DbMallocZero(db, sizeof(*pWith)); in sqlite3WithAdd()
5654 assert( (pNew!=0 && zName!=0) || db->mallocFailed ); in sqlite3WithAdd()
5656 if( db->mallocFailed ){ in sqlite3WithAdd()
5657 sqlite3CteDelete(db, pCte); in sqlite3WithAdd()
5661 sqlite3DbFree(db, pCte); in sqlite3WithAdd()
5670 void sqlite3WithDelete(sqlite3 *db, With *pWith){ in sqlite3WithDelete() argument
5674 cteClear(db, &pWith->a[i]); in sqlite3WithDelete()
5676 sqlite3DbFree(db, pWith); in sqlite3WithDelete()