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

Reply via email to