sqlite3 completion fail on attached names with quotes
Đang mở
Chưa có ai nhận issue này.
stdlib
topic-sqlite3
type-bug
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Bug report
Bug description:
Tab completion fails in sqlite3 when the name of an attached DB contains a quote.
Minimal code repro:
import sqlite3
from sqlite3._completer import _complete
con = sqlite3.connect(":memory:")
con.execute("""ATTACH ':memory:' AS [has"quote]""")
con.execute("""CREATE TABLE [has"quote].example_table(value)""")
print(_complete(con, "exam", 0)) # sqlite3.OperationalError: unrecognized token: "".sqlite_master
con.close()
Minimal CLI repro if you prefer:
(open the CLI)
>>> <python executable≥ -m sqlite3
(in CLI):
>>> ATTACH ':memory:' AS "has""quote";
>>> CREATE TABLE "has""quote".example_table(value);
>>> SELECT * FROM exam<press tab here and it doesn't work>
CPython versions tested on:
CPython main branch, 3.15
Operating systems tested on:
macOS
Linked PRs
- gh-153770
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu tại sqlite3._completer._complete và tái hiện lỗi với tên cơ sở dữ liệu đã đính kèm có chứa dấu ngoặc kép, bằng ví dụ Python hoặc CLI trong issue. Theo dõi đường đi của quá trình hoàn thành cho đến khi thao tác tra cứu SQLite được tạo ra bị lỗi. Hoàn thành khi tính năng hoàn thành bằng phím Tab hoạt động thành công với tên đã đính kèm có dấu ngoặc kép mà không có lỗi unrecognized-token.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python, sqlite
- Lĩnh vực
- cli, database
- Loại issue
- Lỗi
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 25/100