8000 [BUG] Double quoted string literals in SQLite called from Python are being deprecated · Issue #8000 · django-cms/django-cms · GitHub
[go: up one dir, main page]

Skip to content
[BUG] Double quoted string literals in SQLite called from Python are being deprecated #8000
Closed
@infostud

Description

@infostud

Description

Double quoted string literals in SQLite called from Python are being deprecated.

See https://sqlite.org/quirks.html#dblquote

Steps to reproduce

python -m manage version
5.1.1
python -m manage migrate
...
File "/usr/home/geoff/Projects/django/.venv/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", line 352, in execute
return super().execute(query)
^^^^^^^^^^^^^^^^^^^^^^
django.db.utils.OperationalError: no such column: "cms_page" - should this be a string literal in single-quotes?

Debug print(query) yields the SQL statement:

SQLite version 3.46.0 2024-05-23 13:25:27
sqlite> SELECT sql FROM sqlite_master WHERE type='table' and name="cms_page";
Parse error: no such column: "cms_page" - should this be a string literal in single-quotes?

Expected behaviour

sqlite> SELECT sql FROM sqlite_master WHERE type='table' and name='cms_page';
CREATE TABLE "cms_page" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "created_by" varchar(70) NOT NULL, "changed_by" varchar(70) NOT NULL, "creation_date" datetime NOT NULL, "changed_date" datetime NOT NULL, "publication_date" datetime NULL, "publication_end_date" datetime NULL, "in_navigation" bool NOT NULL, "soft_root" bool NOT NULL, "reverse_id" varchar(40) NULL, "navigation_extenders" varchar(80) NULL, "template" varchar(100) NOT NULL, "login_required" bool NOT NULL, "limit_visibility_in_menu" smallint NULL, "is_home" bool NOT NULL, "application_urls" varchar(200) NULL, "application_namespace" varchar(200) NULL, "publisher_is_draft" bool NOT NULL, "languages" varchar(255) NULL, "revision_id" integer unsigned NOT NULL CHECK ("revision_id" >= 0), "xframe_options" integer NOT NULL, "site_id" integer NOT NULL REFERENCES "django_site" ("id") DEFERRABLE INITIALLY DEFERRED, "depth" integer unsigned NOT NULL CHECK ("depth" >= 0), "numchild" integer unsigned NOT NULL CHECK ("numchild" >= 0), "path" varchar(255) NOT NULL UNIQUE, "parent_id" integer NULL REFERENCES "cms_page" ("id") DEFERRABLE INITIALLY DEFERRED, "publisher_public_id" integer NULL UNIQUE REFERENCES "cms_page" ("id") DEFERRABLE INITIALLY DEFERRED)

Discussion

'table' and 'cms_page' are string literals in this context but could be names which can be double quoted in other contexts e.g., SELECT * from "cms_page";

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0