The provider stores results of sqlite3_column_decltype in SQLiteDataReader in the _fieldTypeArray variable. These values could be cached per-command instead of per-reader, which would greatly help in our use case.
We have a prepared command which loads single row based on its rowId. With the current behavior sqlite3_column_decltype is called per each column for each row we load. Ideally it should be called for each column only once, when the command is prepared.