Hi,

1)

Using v3.8.6 I noticed that journal files were created and removed while 
executing a transaction event though I had set the "PRAGMA journal_mode = 
MEMORY;".

Right after creating a new sqlite file using sqlite3_open16() I execute a 
couple of PRAGMA statements.

Right after executing all pragma statements, executing "PRAGMA journal_mode;" 
returns result code 0 ( == DELETE).

As a test I've set "PRAGMA journal_mode = PERSIST;" and then the returned 
result code still is 0 ( == DELETE) but I see that, after closing the sqlite3 
file, the journal file still exists.

The return value for other pragma statements do return the correct value (e.g. 
page_size, max_page_size, ...). 

Questions:
- Is the "PRAGMA journal_mode;" statement returning an incorrect value?
- Are there situations when a journal file needs to be created even when 
journal mode is set to MEMORY?

2)

Then I tried upgrading to the newest version 3.9.2. Opening an sqlite file 
created with v3.8.6 now fails to execute a couple of PRAGMA statements, for 
instance:

- "PRAGMA max_page_count = 1073741823;"
- "PRAGMA auto_vacuum = NONE;"
- "PRAGMA journal_mode = MEMORY;"

The result code returned by function sqlite3_prepare16_v2() that prepares each 
of these statements is 26 (== SQLITE_NOTADB): file is encrypted or is not a 
database.

Other pragma statements like "page_size, encoding, foreign_keys, ..." return 
result code 0 (== SLITE_OK).

Preparing any pragma statement for a sqlite file created with v3.9.2 returns 
result code 0 (== SLITE_OK).

Question:
- Did the compatibility break for some of the PRAGMA statements between v3.8.6 
and v3.9.2?


Any help or information would be greatly appreciated.

Thanks in advance,
Jan Asselman

Reply via email to