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