SQLite

View Ticket
Login
2015-11-01
21:35
If a table-constraint PRIMARY KEY lists a single column in single-quotes and that column has type INTEGER, then make that column an integer primary key, for historical compatibility. Fix for ticket [ac661962a2aeab3c331]. (check-in: dab0e607 user: drh tags: branch-3.9)
21:19 Fixed ticket [ac661962]: Differing interpretation of historical schemas plus 5 other changes (artifact: 3ab30754 user: drh)
21:19
If a table-constraint PRIMARY KEY lists a single column in single-quotes and that column has type INTEGER, then make that column an integer primary key, for historical compatibility. Fix for ticket [ac661962a2aeab3c331]. (check-in: db319a03 user: drh tags: trunk)
21:17 New ticket [ac661962] Differing interpretation of historical schemas. (artifact: 8c71f535 user: drh)

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.