Fossil SCM
Refactor db_close() so that it can make use of db_close_config().
Commit
e2755462150dbbaf2f621fb5dcf8d34fc653fc72
Parent
c7f5541b7d81015…
1 file changed
+13
-10
M
src/db.c
+13
-10
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -795,15 +795,17 @@ | ||
| 795 | 795 | if( g.useAttach ){ |
| 796 | 796 | db_detach("configdb"); |
| 797 | 797 | g.useAttach = 0; |
| 798 | 798 | g.zConfigDbName = 0; |
| 799 | 799 | }else if( g.dbConfig ){ |
| 800 | + sqlite3_wal_checkpoint(g.dbConfig, 0); | |
| 800 | 801 | sqlite3_close(g.dbConfig); |
| 801 | 802 | g.dbConfig = 0; |
| 802 | 803 | g.zConfigDbType = 0; |
| 803 | 804 | g.zConfigDbName = 0; |
| 804 | 805 | }else if( g.db && fossil_strcmp(g.zMainDbType, "configdb")==0 ){ |
| 806 | + sqlite3_wal_checkpoint(g.db, 0); | |
| 805 | 807 | sqlite3_close(g.db); |
| 806 | 808 | g.db = 0; |
| 807 | 809 | g.zMainDbType = 0; |
| 808 | 810 | g.zConfigDbName = 0; |
| 809 | 811 | } |
| @@ -1231,22 +1233,23 @@ | ||
| 1231 | 1233 | if( reportErrors ){ |
| 1232 | 1234 | while( (pStmt = sqlite3_next_stmt(g.db, pStmt))!=0 ){ |
| 1233 | 1235 | fossil_warning("unfinalized SQL statement: [%s]", sqlite3_sql(pStmt)); |
| 1234 | 1236 | } |
| 1235 | 1237 | } |
| 1238 | + db_close_config(); | |
| 1239 | + if( g.db ){ | |
| 1240 | + sqlite3_wal_checkpoint(g.db, 0); | |
| 1241 | + sqlite3_close(g.db); | |
| 1242 | + g.db = 0; | |
| 1243 | + g.zMainDbType = 0; | |
| 1244 | + } | |
| 1236 | 1245 | g.repositoryOpen = 0; |
| 1237 | 1246 | g.localOpen = 0; |
| 1238 | - g.zConfigDbName = NULL; | |
| 1239 | - sqlite3_wal_checkpoint(g.db, 0); | |
| 1240 | - sqlite3_close(g.db); | |
| 1241 | - g.db = 0; | |
| 1242 | - g.zMainDbType = 0; | |
| 1243 | - if( g.dbConfig ){ | |
| 1244 | - sqlite3_close(g.dbConfig); | |
| 1245 | - g.dbConfig = 0; | |
| 1246 | - g.zConfigDbType = 0; | |
| 1247 | - } | |
| 1247 | + assert( g.dbConfig==0 ); | |
| 1248 | + assert( g.useAttach==0 ); | |
| 1249 | + assert( g.zConfigDbName==0 ); | |
| 1250 | + assert( g.zConfigDbType==0 ); | |
| 1248 | 1251 | } |
| 1249 | 1252 | |
| 1250 | 1253 | |
| 1251 | 1254 | /* |
| 1252 | 1255 | ** Create a new empty repository database with the given name. |
| 1253 | 1256 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -795,15 +795,17 @@ | |
| 795 | if( g.useAttach ){ |
| 796 | db_detach("configdb"); |
| 797 | g.useAttach = 0; |
| 798 | g.zConfigDbName = 0; |
| 799 | }else if( g.dbConfig ){ |
| 800 | sqlite3_close(g.dbConfig); |
| 801 | g.dbConfig = 0; |
| 802 | g.zConfigDbType = 0; |
| 803 | g.zConfigDbName = 0; |
| 804 | }else if( g.db && fossil_strcmp(g.zMainDbType, "configdb")==0 ){ |
| 805 | sqlite3_close(g.db); |
| 806 | g.db = 0; |
| 807 | g.zMainDbType = 0; |
| 808 | g.zConfigDbName = 0; |
| 809 | } |
| @@ -1231,22 +1233,23 @@ | |
| 1231 | if( reportErrors ){ |
| 1232 | while( (pStmt = sqlite3_next_stmt(g.db, pStmt))!=0 ){ |
| 1233 | fossil_warning("unfinalized SQL statement: [%s]", sqlite3_sql(pStmt)); |
| 1234 | } |
| 1235 | } |
| 1236 | g.repositoryOpen = 0; |
| 1237 | g.localOpen = 0; |
| 1238 | g.zConfigDbName = NULL; |
| 1239 | sqlite3_wal_checkpoint(g.db, 0); |
| 1240 | sqlite3_close(g.db); |
| 1241 | g.db = 0; |
| 1242 | g.zMainDbType = 0; |
| 1243 | if( g.dbConfig ){ |
| 1244 | sqlite3_close(g.dbConfig); |
| 1245 | g.dbConfig = 0; |
| 1246 | g.zConfigDbType = 0; |
| 1247 | } |
| 1248 | } |
| 1249 | |
| 1250 | |
| 1251 | /* |
| 1252 | ** Create a new empty repository database with the given name. |
| 1253 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -795,15 +795,17 @@ | |
| 795 | if( g.useAttach ){ |
| 796 | db_detach("configdb"); |
| 797 | g.useAttach = 0; |
| 798 | g.zConfigDbName = 0; |
| 799 | }else if( g.dbConfig ){ |
| 800 | sqlite3_wal_checkpoint(g.dbConfig, 0); |
| 801 | sqlite3_close(g.dbConfig); |
| 802 | g.dbConfig = 0; |
| 803 | g.zConfigDbType = 0; |
| 804 | g.zConfigDbName = 0; |
| 805 | }else if( g.db && fossil_strcmp(g.zMainDbType, "configdb")==0 ){ |
| 806 | sqlite3_wal_checkpoint(g.db, 0); |
| 807 | sqlite3_close(g.db); |
| 808 | g.db = 0; |
| 809 | g.zMainDbType = 0; |
| 810 | g.zConfigDbName = 0; |
| 811 | } |
| @@ -1231,22 +1233,23 @@ | |
| 1233 | if( reportErrors ){ |
| 1234 | while( (pStmt = sqlite3_next_stmt(g.db, pStmt))!=0 ){ |
| 1235 | fossil_warning("unfinalized SQL statement: [%s]", sqlite3_sql(pStmt)); |
| 1236 | } |
| 1237 | } |
| 1238 | db_close_config(); |
| 1239 | if( g.db ){ |
| 1240 | sqlite3_wal_checkpoint(g.db, 0); |
| 1241 | sqlite3_close(g.db); |
| 1242 | g.db = 0; |
| 1243 | g.zMainDbType = 0; |
| 1244 | } |
| 1245 | g.repositoryOpen = 0; |
| 1246 | g.localOpen = 0; |
| 1247 | assert( g.dbConfig==0 ); |
| 1248 | assert( g.useAttach==0 ); |
| 1249 | assert( g.zConfigDbName==0 ); |
| 1250 | assert( g.zConfigDbType==0 ); |
| 1251 | } |
| 1252 | |
| 1253 | |
| 1254 | /* |
| 1255 | ** Create a new empty repository database with the given name. |
| 1256 |