SQLite

View Ticket
Login
2021-03-14
01:20 New ticket [1c24a659] DROP COLUMN leaves behind an index. (artifact: e3f3b036 user: drh)
2019-05-20
17:15 Closed ticket [9b78184b]: Index on non-existing column results in a fabricated value being fetched plus 6 other changes (artifact: 6093aca9 user: dan)
17:14
Disallow string constants enclosed in double-quotes within new CREATE TABLE and CREATE INDEX statements. It is still possible to enclose column names in double-quotes, and existing database schemas that use double-quotes for strings can still be loaded. This addresses ticket [9b78184b]. (check-in: 1685610e user: dan tags: trunk)
2019-05-19
09:44 New ticket [9b78184b] Index on non-existing column results in a fabricated value being fetched. (artifact: e26938aa user: mrigger)

Ticket Hash: 9b78184be266fd7084e9e8038ad631a21b37eb9e
Title: Index on non-existing column results in a fabricated value being fetched
Status: Closed Type: Code_Defect
Severity: Cosmetic Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2019-05-20 17:15:29
Version Found In:
User Comments:
mrigger added on 2019-05-19 09:44:06:

Consider the example below:

CREATE TABLE t0(c1, c2);
INSERT INTO t0(c1, c2) VALUES  ('a', 1);
CREATE INDEX i0 ON t0("C3");
ALTER TABLE t0 RENAME COLUMN c1 TO c3;
SELECT DISTINCT * FROM t0; -- fetches C3|1 rather than a|1

It is possible to create an index on a column that does not exist yet. When the column is then created, the index results in the name of the column being returned, instead of a value stored in it.


dan added on 2019-05-20 17:15:29:

Addressed by commit [1685610e].