Fossil SCM

Print a warning if there are unfinalized SQL statements when fossil shuts down. Take care to finalize all statements in the "commit" command.

drh 2010-08-23 22:19 trunk
Commit 94d8e9cd4b454a2982241ffb6f44be9833c4f0e8
2 files changed +1 -1 +5
+1 -1
--- src/checkin.c
+++ src/checkin.c
@@ -813,11 +813,11 @@
813813
blob_appendf(&manifest, " %s", zUuid);
814814
checkin_verify_younger(mid, zUuid, zDate);
815815
free(zUuid);
816816
}
817817
}
818
- db_reset(&q2);
818
+ db_finalize(&q2);
819819
820820
blob_appendf(&manifest, "\n");
821821
blob_appendf(&manifest, "R %b\n", &cksum1);
822822
if( zBranch && zBranch[0] ){
823823
Stmt q;
824824
--- src/checkin.c
+++ src/checkin.c
@@ -813,11 +813,11 @@
813 blob_appendf(&manifest, " %s", zUuid);
814 checkin_verify_younger(mid, zUuid, zDate);
815 free(zUuid);
816 }
817 }
818 db_reset(&q2);
819
820 blob_appendf(&manifest, "\n");
821 blob_appendf(&manifest, "R %b\n", &cksum1);
822 if( zBranch && zBranch[0] ){
823 Stmt q;
824
--- src/checkin.c
+++ src/checkin.c
@@ -813,11 +813,11 @@
813 blob_appendf(&manifest, " %s", zUuid);
814 checkin_verify_younger(mid, zUuid, zDate);
815 free(zUuid);
816 }
817 }
818 db_finalize(&q2);
819
820 blob_appendf(&manifest, "\n");
821 blob_appendf(&manifest, "R %b\n", &cksum1);
822 if( zBranch && zBranch[0] ){
823 Stmt q;
824
+5
--- src/db.c
+++ src/db.c
@@ -894,15 +894,20 @@
894894
895895
/*
896896
** Close the database connection.
897897
*/
898898
void db_close(void){
899
+ sqlite3_stmt *pStmt;
899900
if( g.db==0 ) return;
900901
while( pAllStmt ){
901902
db_finalize(pAllStmt);
902903
}
903904
db_end_transaction(1);
905
+ pStmt = 0;
906
+ while( (pStmt = sqlite3_next_stmt(g.db, pStmt))!=0 ){
907
+ fossil_warning("unfinalized SQL statement: [%s]", sqlite3_sql(pStmt));
908
+ }
904909
g.repositoryOpen = 0;
905910
g.localOpen = 0;
906911
g.configOpen = 0;
907912
sqlite3_wal_checkpoint(g.db, 0);
908913
sqlite3_close(g.db);
909914
--- src/db.c
+++ src/db.c
@@ -894,15 +894,20 @@
894
895 /*
896 ** Close the database connection.
897 */
898 void db_close(void){
 
899 if( g.db==0 ) return;
900 while( pAllStmt ){
901 db_finalize(pAllStmt);
902 }
903 db_end_transaction(1);
 
 
 
 
904 g.repositoryOpen = 0;
905 g.localOpen = 0;
906 g.configOpen = 0;
907 sqlite3_wal_checkpoint(g.db, 0);
908 sqlite3_close(g.db);
909
--- src/db.c
+++ src/db.c
@@ -894,15 +894,20 @@
894
895 /*
896 ** Close the database connection.
897 */
898 void db_close(void){
899 sqlite3_stmt *pStmt;
900 if( g.db==0 ) return;
901 while( pAllStmt ){
902 db_finalize(pAllStmt);
903 }
904 db_end_transaction(1);
905 pStmt = 0;
906 while( (pStmt = sqlite3_next_stmt(g.db, pStmt))!=0 ){
907 fossil_warning("unfinalized SQL statement: [%s]", sqlite3_sql(pStmt));
908 }
909 g.repositoryOpen = 0;
910 g.localOpen = 0;
911 g.configOpen = 0;
912 sqlite3_wal_checkpoint(g.db, 0);
913 sqlite3_close(g.db);
914

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button