Jay Kreibich wrote: > On Aug 18, 2017, at 5:33 AM, Clemens Ladisch <clem...@ladisch.de> wrote: >> sanhua.zh wrote: >>> 1. Conn A: Open, PRAGMA journal_mode=WAL >>> 2.ConnB: Open, PRAGMA journal_mode=WAL >>> 3.ConnA: CREATE TABLE sample (i INTEGER); >>> 4.ConnB: PRAGMA table_info('sample') >>> >>> Firstly, both thread 1 and 2 do initialization for their own conn, which is >>> to read to schema into memory. >>> Then, Conn A creates a table with Conn A. >>> Finally, `PRAGMA table_info(sample)` is called in thread 2 with Conn B and >>> it returns nothing. >>> >>> I do know the reason should be the expired in-memory-schema. >> >> No, SQLite automatically detects schema changes. > > …but only automatically re-prepares the expired statements if the statement > was originally prepared using sqlite3_prepare*_v2 or _v3.
The word "expired" in the OP is misleading; this problem has nothing to do with schema expiration (that would result in an SQLITE_SCHEMA error). Regards, Clemens _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users