SQLite

View Ticket
Login
Ticket Hash: ac661962a2aeab3c331a4176e273360f0ba5aef1
Title: Differing interpretation of historical schemas
Status: Fixed Type: Code_Defect
Severity: Important Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2015-11-01 21:19:24
Version Found In: 3.9.1
User Comments:
drh added on 2015-11-01 21:17:19:

Historically, the following four table have been interpreted the same was, as a two column table with an INTEGER PRIMARY KEY in the first column:

CREATE TABLE t1(x integer NOT NULL, y test, PRIMARY KEY(x));
CREATE TABLE t2("x" integer NOT NULL, "y" test, PRIMARY KEY("x"));
CREATE TABLE t3([x] integer NOT NULL, [y] test, PRIMARY KEY([x]));
CREATE TABLE t4('x' integer NOT NULL, 'y' test, PRIMARY KEY('x'));

However, in 3.9.0 and 3.9.1, the t4 table above is interpreted as a two column table with a separate PRIMARY KEY index on the first column. Hence, if the database schema above is created with version 3.8.11.1 or earlier, then PRAGMA integrity_check will show an error with version 3.9.0 and later.

Version 3.9.0 and later should interpret all four tables above the same way.