FTS detection treats table names as LIKE patterns
Les mainteneurs répondent en général sous 3 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
Piste de recherche
Commencez par lire detect_fts() et les motifs LIKE qu’il utilise pour trouver les tables FTS ; l’issue identifie le traitement des caractères génériques dans les noms de tables comme cause. Reproduisez le problème avec l’exemple fourni book_titles et bookXtitles, puis vérifiez qu’un test de régression couvre _ et %. Le travail est terminé lorsque book_titles_fts est détectée et que la recherche de incorrect ne renvoie aucune ligne.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Python
- Étoiles
- 2.2k
- Forks
- 215
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de simonw/sqlite-utils
-
Contributing docs: local test runs silently skip SpatiaLite and ext.c tests, and the setup steps assume SSH and uvPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
simonw/sqlite-utils#928 ·
Les mainteneurs répondent en général sous 3 jours
-
Tests use CliRunner.isolated_filesystem(), which is deprecated and will be removed in Click 9.0Peut-être pris @devpryan7792 l’a pris il y a 12 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
simonw/sqlite-utils#916 ·
Les mainteneurs répondent en général sous 3 jours
-
rows_from_file() splits a single-column CSV file on a letter, or raises csv.ErrorPeut-être pris @L4XB l’a pris il y a 20 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
simonw/sqlite-utils#907 ·
Les mainteneurs répondent en général sous 3 jours
-
enable_fts() exhausts iterator columns before populating the indexPeut-être pris @syahra712 l’a pris il y a 26 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
simonw/sqlite-utils#902 ·
Les mainteneurs répondent en général sous 3 jours
-
rows_from_file() ignores ignore_extras= and extras_key= for anything that isn't Format.CSVPeut-être pris @feiiiiii5 l’a pris il y a 37 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
simonw/sqlite-utils#892 ·
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de simonw/sqlite-utils
Issues similaires
-
Remove the `pull_request_target` workflow before GitHub blocks itPeut-être pris @jat255 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
IBM/mcp-context-forge#7483 ·
Les mainteneurs répondent en général sous 2 jours
-
bug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
[Bug Report]: OpenAI 辅助 API 连通性测试因输出上限仅 1 token 误报“未知错误”Peut-être pris @fjfanjian l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Project-N-E-K-O/N.E.K.O#3640 ·
Les mainteneurs répondent en général sous 1 jour
-
author-page correction
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
acl-org/acl-anthology#10808 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour