O que faz com que um arquivo de diário seja criado no SQLit

Comecei a perceber um comportamento estranho com minhas consultas SQLite para meu aplicativo para iPhone. Sempre que executo uma instrução "INSERT", um arquivo de diário é criado ao lado do meu arquivo db (o nome do arquivo exato é "userdata.db-journal").

Se eu entendo os documentos corretamente, esse arquivo de diário é usado pelo SQLite para poder reverter caso a operação falhe. Mas o arquivo permanece lá após a conclusão da operação.

Eu faço as etapas clássicas para preparar, encadernar e executar a consulta (nenhuma verificação de valores de retorno para simplificar):

sqlite3 *db = NULL;
sqlite3_open( "userdata.db", &db );

sqlite3_stmt *insertStmt = NULL;
const char *query = "INSERT INTO table VALUES(?,?)";
sqlite3_prepare_v2( db, query, -1, &insertStmt, NULL );

sqlite3_bind_int( insertStmt, 1, 0 );
sqlite3_bind_int( insertStmt, 2, 0 );

sqlite3_step( insertStmt );

sqlite3_reset( insertStmt );
sqlite3_clear_bindings( insertStmt );

sqlite3_close( db );

O arquivo de diário é criado depois que a função 'sqlite3_step' é chamada e permanece lá até eu fechar o banco de dados. O que preciso fazer para que isso desapareça?

questionAnswers(3)

yourAnswerToTheQuestion