enable_fts() exhausts iterator columns before populating the index
Les mainteneurs répondent en général sous 3 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 83/100
Piste de recherche
Lis l’implémentation de Table.enable_fts() et populate_fts(), y compris la construction des triggers, puis exécute la reproduction de l’issue avec une base de données en mémoire. Vérifie comment l’itérable columns est utilisé pour créer et remplir la table FTS et construire les triggers. Le travail est terminé lorsqu’un itérateur à usage unique fonctionne avec FTS4 et FTS5, avec ou sans triggers, et que l’entrée sous forme de liste fonctionne toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem
Table.enable_fts() accepts columns: Iterable[str], but passing a one-shot iterator raises sqlite3.OperationalError: near ")": syntax error. The same columns supplied as a list work. The FTS virtual table has already been created when the error occurs, so a retry without replace=True also encounters an existing table.
Reproduced locally against main 9c66bafa52ae23d40499c74b0db3b635bcddb876, Python 3.12.14, using an in-memory database:
from sqlite_utils import Database
db = Database(memory=True)
table = db["notes"].insert({"text": "hello"})
table.enable_fts(iter(["text"]))
# sqlite3.OperationalError: near ")": syntax error
Replacing iter(["text"]) with ["text"] succeeds and list(table.search("hello")) returns the record. I reproduced the failure with both FTS4 and FTS5, with and without create_triggers=True.
The iterable is consumed while building CREATE VIRTUAL TABLE, then passed to populate_fts(). Trigger construction also reuses it. Materializing the columns once would preserve the declared iterable contract.
AI assistance: OpenAI Codex inspected the code and ran this reproduction. No live service, user database, or external model call was used.
- 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
-
FTS detection treats table names as LIKE patternsPeut-être pris @IlyaKhalafi l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
simonw/sqlite-utils#930 ·
Les mainteneurs répondent en général sous 3 jours
-
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
-
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