Skip to content

ALTER rewrites sqlite_schema.sql incorrectly (identifier quoting/escaping) #5656

@Pavan-Nambi

Description

@Pavan-Nambi

A. Table name contains space + DROP COLUMN

rm -f /tmp/drop_space.db
./target/release/tursodb -q -m list /tmp/drop_space.db $'
CREATE TABLE "a b"(x,y);
ALTER TABLE "a b" DROP COLUMN y;
SELECT name, sql FROM sqlite_schema;
'
sqlite3 /tmp/drop_space.db 'SELECT name,sql FROM sqlite_schema; PRAGMA integrity_check;'

B. Table name is keyword + ADD COLUMN

rm -f /tmp/kw.db
./target/release/tursodb -q /tmp/kw.db $'
CREATE TABLE "select"(a);
ALTER TABLE "select" ADD COLUMN b;
'
sqlite3 /tmp/kw.db 'SELECT name,sql FROM sqlite_schema; PRAGMA integrity_check;'

C. Column name is keyword (must stay quoted) + ADD COLUMN

rm -f /tmp/col_kw.db
./target/release/tursodb -q /tmp/col_kw.db $'
CREATE TABLE t("select" INT);
ALTER TABLE t ADD COLUMN b;
'
sqlite3 /tmp/col_kw.db 'SELECT name,sql FROM sqlite_schema; PRAGMA integrity_check;'

D. Identifier contains ] (escaping/quoting regression) + ADD COLUMN

rm -f /tmp/col_bracket.db
./target/release/tursodb -q /tmp/col_bracket.db $'
CREATE TABLE t("x]y" INT);
ALTER TABLE t ADD COLUMN z;
'
sqlite3 /tmp/col_bracket.db 'SELECT name,sql FROM sqlite_schema; PRAGMA integrity_check;'

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions