siara-cc / esp32_arduino_sqlite3_lib

Sqlite3 Arduino library for ESP32
Apache License 2.0
350 stars 66 forks source link

PRAGMA not being processed? #49

Open mr-wiggle opened 2 years ago

mr-wiggle commented 2 years ago

I've been trying to run some PRAGMA commands, but they all seem to be ignored. Specifically, what I'm trying to do is set PRAGMA journal_mode = MEMORY but after setting this, when I do in insert transaction, the journal on the file system is still being accessed. I tested this by putting logging in the esp32.cpp file to log when ESP32Access() was called. and it is called for the database.db-journal file when performing a write transaction.

This had me investigate more into the PRAGMA situation, and it seems like none of the PRAGMAs are having an effect. (I haven't tested everything, just a random sampling). I also can't get any PRAGMA calls to return anything to check what the current values are set to. For example running PRAGMA journal_mode should return the current journal mode. I've also experimented with alternate syntax such as SELECT * FROM pragma_journal_mode with no success. I've checked for results in the prepare statement and the step statements too, as I have read that some PRAGMAs return on the prepare statement in the c++ api.

I checked the config and it looks like they should be working. Both of these are undefined, which means they should be included in the compile:

#undef SQLITE_OMIT_PAGER_PRAGMAS
#undef SQLITE_OMIT_PRAGMA

Am I missing something else?