|15:58||• Fixed ticket [7d7525cb]: Compatibility break on INTEGER PRIMARY KEY columns. plus 5 other changes (artifact: 7d322fdd user: drh)|
|15:54||Remove quotes from identifiers used as datatype names in a CREATE TABLE statement. Fix for ticket [7d7525cb01b68] (check-in: ab9d279f user: drh tags: branch-3.12.0)|
|15:46||Remove quotes from identifiers used as datatype names in a CREATE TABLE statement. Fix for ticket [7d7525cb01b68] (check-in: eba27d4d user: drh tags: trunk)|
|15:24||• New ticket [7d7525cb] Compatibility break on INTEGER PRIMARY KEY columns.. (artifact: b61cd89a user: drh)|
|Title:||Compatibility break on INTEGER PRIMARY KEY columns.|
|Last Modified:||2016-04-18 15:58:37|
|Version Found In:|
drh added on 2016-04-18 15:24:18:
SQLite as always allowed the datatype of a column to be quoted. For example:
CREATE TABLE t1( a "INTEGER" PRIMARY KEY, b "TEXT" );
But beginning with version 3.12.0, quoting the "INTEGER" datatype causes SQLite to fail to recognize that the column is the INTEGER PRIMARY KEY that has special properties. This means that legacy database files that were created using INTEGER PRIMARY KEYs where the "INTEGER" keywords was quoted become unreadable.
The fact that legacy versions of SQLite allowed datatype names to be quoted is undocumented and untested, and was a fact unknown to the developers, which is how this problem managed to slip through testing.