1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
|
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
|
+
+
+
+
+
+
-
+
+
|
/* Delete all registered commands and the command hash-table itself. */
Th_HashIterate(interp, interp->paCmd, thFreeCommand, (void *)interp);
Th_HashDelete(interp, interp->paCmd);
#ifdef TH_USE_SQLITE
{
int i;
sqlite3_stmt * st;
for( i = 0; i < interp->stmt.nStmt; ++i ){
st = interp->stmt.aStmt[i];
if(NULL != st){
fossil_warning("Auto-finalizing unfinalized query_prepare "
"statement id #%d: %s",
i+1, sqlite3_sql(st));
Th_FinalizeStmt( interp, i );
Th_FinalizeStmt( interp, i+1 );
}
}
Th_Free(interp, interp->stmt.aStmt);
}
#endif
/* Delete the interpreter structure itself. */
Th_Free(interp, (void *)interp);
|
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
|
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
|
-
-
+
+
+
|
int rc = 0;
assert( stmtId>0 && stmtId<=interp->stmt.nStmt );
st = interp->stmt.aStmt[stmtId-1];
if(NULL != st){
interp->stmt.aStmt[stmtId-1] = NULL;
sqlite3_finalize(st);
return 0;
}
return 1;
}else{
return 1;
}
}
sqlite3_stmt * Th_GetStmt(Th_Interp *interp, int stmtId){
return ((stmtId<1) || (stmtId > interp->stmt.nStmt))
? NULL
: interp->stmt.aStmt[stmtId-1];
}
#endif
/* end TH_USE_SQLITE */
|