On Friday, 21 July, 2017 14:24, Igor Korot <ikoro...@gmail.com> wrote:
>I presume the same is true for the DB created with 3.0.0 and opened >with 3.20.0. >As long as I will use the standard SQL command and don't use any new >feature introduced in 3.20.0. >The only trouble is - I may not know in advance what version of >SQLite was used and my program - which is based on the C API - >will use all those new features available, >because it makes the program better/faster/more robust/etc. >But then I will get an error, right? Because the feature I want is >not supported by the database. >Or ma I missing something? The features are not the C API nor are they DML (SELECT INSERT UPDATE DELETE -- the CRUD operations). The features are DDL (Data Definition Language)/ - conditional indexes - WAL journal mode - indexes on functions - without-rowid tables So, if you (with any version of SQLite on any database created by any version of SQLite that you can open), create a conditional index on functions then that database cannot be opened (will be corrupt) in all versions of SQLite prior to the version at which both conditional indexes and index on functions became available. Similarly, if you set a database to WAL it cannot be opened with a version of SQLite that does not do WAL. However, if you delete the features you added above, you WILL be able to open the database in versions of all versions of SQLite that have the necessary DDL included. Using a feature of the C API that does not permanently change the database structure does not change the compatibility of the database. That is to say that you can use the sqlite3_blob_twiddler interface to play with blobs even though that interface did not appear until version 3.45.0, and the database can still be opened and used perfectly fine in SQLite 3.0.0 (but the program which calls the sqlite3_blob_twiddler C API obviously will not be able to link with that version of SQLite -- which is an entirely different thing). _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users