Lines Matching defs:db

31   sqlite *db;         /* The database being initialized */
73 sqlite *db = pData->db;
80 ** But because db->init.busy is set to 1, no VDBE code is generated
85 assert( db->init.busy );
86 db->init.iDb = atoi(argv[4]);
87 assert( db->init.iDb>=0 && db->init.iDb<db->nDb );
88 db->init.newTnum = atoi(argv[2]);
89 if( sqlite_exec(db, argv[3], 0, 0, &zErr) ){
93 db->init.iDb = 0;
105 assert( iDb>=0 && iDb<db->nDb );
106 pIndex = sqliteFindIndex(db, argv[1], db->aDb[iDb].zName);
149 pTab = sqliteFindTable(pData->db, argv[0], 0);
156 rc = sqlite_exec_printf(pData->db,
172 pTab = sqliteFindTable(pData->db, argv[0], 0);
190 static int sqliteInitOne(sqlite *db, int iDb, char **pzErrMsg){
225 assert( iDb>=0 && iDb<db->nDb );
241 sqliteSafetyOff(db);
249 initData.db = db;
252 pTab = sqliteFindTable(db, zMasterName, db->aDb[iDb].zName);
258 sqliteSafetyOn(db);
262 if( db->aDb[iDb].pBt==0 ) return SQLITE_OK;
263 rc = sqliteBtreeCursor(db->aDb[iDb].pBt, 2, 0, &curMain);
271 rc = sqliteBtreeGetMeta(db->aDb[iDb].pBt, meta);
277 db->aDb[iDb].schema_cookie = meta[1];
279 db->next_cookie = meta[1];
280 db->file_format = meta[2];
283 db->cache_size = size;
284 db->safety_level = meta[4];
285 if( meta[6]>0 && meta[6]<=2 && db->temp_store==0 ){
286 db->temp_store = meta[6];
288 if( db->safety_level==0 ) db->safety_level = 2;
297 if( db->file_format==0 ){
299 db->file_format = 4;
300 }else if( db->file_format>4 ){
305 }else if( iDb!=1 && (db->file_format!=meta[2] || db->file_format<4) ){
306 assert( db->file_format>=4 );
309 db->aDb[iDb].zName, (char*)0);
312 "database: ", db->aDb[iDb].zName, (char*)0);
314 sqliteBtreeClose(db->aDb[iDb].pBt);
315 db->aDb[iDb].pBt = 0;
318 sqliteBtreeSetCacheSize(db->aDb[iDb].pBt, db->cache_size);
319 sqliteBtreeSetSafetyLevel(db->aDb[iDb].pBt, meta[4]==0 ? 2 : meta[4]);
323 assert( db->init.busy );
324 sqliteSafetyOff(db);
340 if( db->file_format>=2 ){
343 db->aDb[iDb].zName, "\".", zMasterName, (char*)0);
347 db->aDb[iDb].zName, "\".", zMasterName,
351 rc = sqlite_exec(db, zSql, sqliteInitCallback, &initData, 0);
354 sqliteSafetyOn(db);
359 sqliteResetInternalSchema(db, 0);
362 DbSetProperty(db, iDb, DB_SchemaLoaded);
364 sqliteResetInternalSchema(db, iDb);
382 int sqliteInit(sqlite *db, char **pzErrMsg){
385 if( db->init.busy ) return SQLITE_OK;
386 assert( (db->flags & SQLITE_Initialized)==0 );
388 db->init.busy = 1;
389 for(i=0; rc==SQLITE_OK && i<db->nDb; i++){
390 if( DbHasProperty(db, i, DB_SchemaLoaded) || i==1 ) continue;
391 rc = sqliteInitOne(db, i, pzErrMsg);
393 sqliteResetInternalSchema(db, i);
401 if( rc==SQLITE_OK && db->nDb>1 && !DbHasProperty(db, 1, DB_SchemaLoaded) ){
402 rc = sqliteInitOne(db, 1, pzErrMsg);
404 sqliteResetInternalSchema(db, 1);
408 db->init.busy = 0;
410 db->flags |= SQLITE_Initialized;
411 sqliteCommitInternalChanges(db);
419 if( rc==SQLITE_OK && db->file_format<3 ){
424 db->magic = SQLITE_MAGIC_OPEN;
425 initData.db = db;
427 db->file_format = 3;
428 rc = sqlite_exec(db,
434 sqliteBtreeGetMeta(db->aDb[0].pBt, meta);
436 sqliteBtreeUpdateMeta(db->aDb[0].pBt, meta);
437 sqlite_exec(db, "COMMIT", 0, 0, 0);
448 db->flags &= ~SQLITE_Initialized;
479 sqlite *db;
483 db = sqliteMalloc( sizeof(sqlite) );
485 if( db==0 ) goto no_mem_on_open;
486 db->onError = OE_Default;
487 db->priorNewRowid = 0;
488 db->magic = SQLITE_MAGIC_BUSY;
489 db->nDb = 2;
490 db->aDb = db->aDbStatic;
491 /* db->flags |= SQLITE_ShortColNames; */
492 sqliteHashInit(&db->aFunc, SQLITE_HASH_STRING, 1);
493 for(i=0; i<db->nDb; i++){
494 sqliteHashInit(&db->aDb[i].tblHash, SQLITE_HASH_STRING, 0);
495 sqliteHashInit(&db->aDb[i].idxHash, SQLITE_HASH_STRING, 0);
496 sqliteHashInit(&db->aDb[i].trigHash, SQLITE_HASH_STRING, 0);
497 sqliteHashInit(&db->aDb[i].aFKey, SQLITE_HASH_STRING, 1);
502 db->temp_store = 2;
504 rc = sqliteBtreeFactory(db, zFilename, 0, MAX_PAGES, &db->aDb[0].pBt);
512 sqliteFree(db);
516 db->aDb[0].zName = "main";
517 db->aDb[1].zName = "temp";
520 sqliteRegisterBuiltinFunctions(db);
521 rc = sqliteInit(db, pzErrMsg);
522 db->magic = SQLITE_MAGIC_OPEN;
524 sqlite_close(db);
527 sqlite_close(db);
536 return db;
547 int sqlite_last_insert_rowid(sqlite *db){
548 return db->lastRowid;
554 int sqlite_changes(sqlite *db){
555 return db->nChange;
564 int sqlite_last_statement_changes(sqlite *db){
565 return db->lsChange;
571 void sqlite_close(sqlite *db){
574 db->want_to_close = 1;
575 if( sqliteSafetyCheck(db) || sqliteSafetyOn(db) ){
579 db->magic = SQLITE_MAGIC_CLOSED;
580 for(j=0; j<db->nDb; j++){
581 struct Db *pDb = &db->aDb[j];
587 sqliteResetInternalSchema(db, 0);
588 assert( db->nDb<=2 );
589 assert( db->aDb==db->aDbStatic );
590 for(i=sqliteHashFirst(&db->aFunc); i; i=sqliteHashNext(i)){
597 sqliteHashClear(&db->aFunc);
598 sqliteFree(db);
604 void sqliteRollbackAll(sqlite *db){
606 for(i=0; i<db->nDb; i++){
607 if( db->aDb[i].pBt ){
608 sqliteBtreeRollback(db->aDb[i].pBt);
609 db->aDb[i].inTrans = 0;
612 sqliteResetInternalSchema(db, 0);
613 /* sqliteRollbackInternalChanges(db); */
627 sqlite *db, /* The database on which the SQL executes */
643 rc = sqlite_compile(db, zSql, &zLeftover, &pVm, pzErrMsg);
652 db->nChange += nChange;
666 && (db->flags & SQLITE_NullCallback)!=0 && xCallback!=0 ){
675 if( db->pVdbe==0 ){
676 nChange = db->nChange;
695 sqlite *db, /* The database on which the SQL executes */
704 if( sqliteSafetyOn(db) ) goto exec_misuse;
705 if( !db->init.busy ){
706 if( (db->flags & SQLITE_Initialized)==0 ){
708 while( (rc = sqliteInit(db, pzErrMsg))==SQLITE_BUSY
709 && db->xBusyCallback
710 && db->xBusyCallback(db->pBusyArg, "", cnt++)!=0 ){}
713 sqliteSafetyOff(db);
721 if( db->file_format<3 ){
722 sqliteSafetyOff(db);
727 assert( (db->flags & SQLITE_Initialized)!=0 || db->init.busy );
728 if( db->pVdbe==0 ){ db->nChange = 0; }
730 sParse.db = db;
732 if( db->xTrace && !db->init.busy ){
742 db->xTrace(db->pTraceArg, tmpSql);
749 db->xTrace(db->pTraceArg, zSql);
752 db->xTrace(db->pTraceArg, zSql);
758 sqliteRollbackAll(db);
759 sqliteResetInternalSchema(db, 0);
760 db->flags &= ~SQLITE_InTrans;
768 sqliteResetInternalSchema(db, 0);
773 if( sqliteSafetyOff(db) ) goto exec_misuse;
910 sqlite *db,
914 db->xBusyCallback = xBusy;
915 db->pBusyArg = pArg;
925 sqlite *db,
931 db->xProgress = xProgress;
932 db->nProgressOps = nOps;
933 db->pProgressArg = pArg;
935 db->xProgress = 0;
936 db->nProgressOps = 0;
937 db->pProgressArg = 0;
947 void sqlite_busy_timeout(sqlite *db, int ms){
949 sqlite_busy_handler(db, sqliteDefaultBusyCallback, (void*)(long)ms);
951 sqlite_busy_handler(db, 0, 0);
958 void sqlite_interrupt(sqlite *db){
959 db->flags |= SQLITE_Interrupt;
997 sqlite *db, /* Add the function to this database connection */
1005 if( db==0 || zName==0 || sqliteSafetyCheck(db) ) return 1;
1009 p = sqliteFindFunction(db, zName, nName, nArg, 1);
1018 sqlite *db, /* Add the function to this database connection */
1027 if( db==0 || zName==0 || sqliteSafetyCheck(db) ) return 1;
1031 p = sqliteFindFunction(db, zName, nName, nArg, 1);
1045 int sqlite_function_type(sqlite *db, const char *zName, int dataType){
1046 FuncDef *p = (FuncDef*)sqliteHashFind(&db->aFunc, zName, strlen(zName));
1062 void *sqlite_trace(sqlite *db, void (*xTrace)(void*,const char*), void *pArg){
1063 void *pOld = db->pTraceArg;
1064 db->xTrace = xTrace;
1065 db->pTraceArg = pArg;
1076 sqlite *db, /* Attach the hook to this database */
1080 void *pOld = db->pCommitArg;
1081 db->xCommitCallback = xCallback;
1082 db->pCommitArg = pArg;
1099 ** db->temp_store variable, according to the following chart:
1101 ** TEMP_STORE db->temp_store Location of temporary database
1113 const sqlite *db, /* Main database when opening aux otherwise 0 */
1128 int location = db->temp_store==0 ? TEMP_STORE : db->temp_store;