We've misused sqlite3_column_name
. The
SQLite documentation
states that the following:
The returned string pointer is valid until either the prepared statement is destroyed by sqlite3finalize() or until the statement is automatically reprepared by the first call to sqlite3step() for a particular run or until the next call to sqlite3columnname() or sqlite3columnname16() on the same column.
As part of our query_by_name
infrastructure we've first received all
field names for the prepared statement and stored them as string slices
for later use. After that we called sqlite3_step()
for the first time,
which invalids the pointer and therefore the stored string slice.
{ "license": "CC0-1.0" }