FTS detection treats table names as LIKE patterns
Maintainer antworten meist innerhalb von 3 Tagen
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 82/100
Rechercherichtung
Lies zuerst detect_fts() und die LIKE-Muster, die es zum Finden von FTS-Tabellen verwendet; das Issue nennt die Behandlung von Platzhaltern in Tabellennamen als Ursache. Reproduziere das Problem mit dem bereitgestellten Beispiel book_titles und bookXtitles und prüfe dann, ob ein Regressionstest sowohl _ als auch % abdeckt. Fertig ist die Arbeit, wenn book_titles_fts erkannt wird und die Suche nach incorrect keine Zeilen zurückgibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
When a table name contains _ or %, detect_fts() treats those characters as SQL LIKE wildcards. It can select another table's FTS index and use its matching row IDs against the requested table.
from sqlite_utils import Database
db = Database(memory=True)
db["bookXtitles"].insert({"title": "incorrect"}).enable_fts(["title"])
db["book_titles"].insert({"title": "correct"}).enable_fts(["title"])
print(db["book_titles"].detect_fts())
print(list(db["book_titles"].search("incorrect")))
Current main prints bookXtitles_fts and returns the row containing correct, even though that row does not match the search. It should detect book_titles_fts and return no rows for this query.
The same issue occurs with % in the table name. The table-name portion of the LIKE patterns needs escaping. The quote delimiters added for #434 prevent prefix matches but leave wildcard characters active.
Reproduced on Python 3.12 and SQLite 3.53.1 using current main.
- Vorherrschende Sprache
- Python
- Sterne
- 2.2k
- Forks
- 215
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus simonw/sqlite-utils
-
Contributing docs: local test runs silently skip SpatiaLite and ext.c tests, and the setup steps assume SSH and uvEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
simonw/sqlite-utils#928 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Tests use CliRunner.isolated_filesystem(), which is deprecated and will be removed in Click 9.0Evtl. vergeben @devpryan7792 hat das vor 12 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
simonw/sqlite-utils#916 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
rows_from_file() splits a single-column CSV file on a letter, or raises csv.ErrorEvtl. vergeben @L4XB hat das vor 20 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
simonw/sqlite-utils#907 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
enable_fts() exhausts iterator columns before populating the indexEvtl. vergeben @syahra712 hat das vor 26 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
simonw/sqlite-utils#902 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
rows_from_file() ignores ignore_extras= and extras_key= for anything that isn't Format.CSVEvtl. vergeben @feiiiiii5 hat das vor 37 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
simonw/sqlite-utils#892 ·
Maintainer antworten meist innerhalb von 3 Tagen
Alle Issues in simonw/sqlite-utils
Ähnliche Issues
-
Remove the `pull_request_target` workflow before GitHub blocks itEvtl. vergeben @jat255 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
IBM/mcp-context-forge#7483 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
bug good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
[Bug Report]: OpenAI 辅助 API 连通性测试因输出上限仅 1 token 误报“未知错误”Evtl. vergeben @fjfanjian hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Project-N-E-K-O/N.E.K.O#3640 ·
Maintainer antworten meist innerhalb von 1 Tag
-
author-page correction
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
acl-org/acl-anthology#10808 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag