On 15 Feb 2018, at 5:30pm, Dan Kennedy <danielk1...@gmail.com> wrote:

> (B) is an understandably common misconception. sqlite3_shutdown() frees 
> resources that were allocated by sqlite3_initialize() or 
> sqlite3_auto_extension() and must be called after all SQLite connections have 
> been closed. These resources are either trivial or non-existent on almost all 
> platforms - so in practice sqlite3_shutdown() is only useful on embedded 
> systems that do not free such resources automatically when a process exits, 
> or in other obscure circumstances.
> Don't call sqlite3_shutdown()!

Thanks for your informative correction.  Is there a chance of amending the 
documentation with the above text ?  I have two problems with the existing 

1) I can't be the only programmer who learned to make paired calls ("If you 
initialise something, it needs deinitializing, if you allocate something, 
deallocate it.").

2) I thought that sqlite3_shutdown() called sqlite3_close() on any open 
connections.  In other words, that if keeping track of your connections was 
difficult it might be simpler to just call sqlite3_shutdown().

sqlite-users mailing list

Reply via email to