FTS detection treats table names as LIKE patterns
Mantenedores costumam responder em até 3 dias
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 82/100
Direção de pesquisa
Comece lendo detect_fts() e os padrões LIKE que ele usa para encontrar tabelas FTS; a issue identifica o tratamento de curingas em nomes de tabelas como a causa. Reproduza o problema com o exemplo fornecido book_titles e bookXtitles e, em seguida, verifique se há um teste de regressão que cubra tanto _ quanto %. O trabalho estará concluído quando book_titles_fts for detectada e a busca por incorrect não retornar nenhuma linha.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Python
- Estrelas
- 2.2k
- Forks
- 215
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de simonw/sqlite-utils
-
Contributing docs: local test runs silently skip SpatiaLite and ext.c tests, and the setup steps assume SSH and uvTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
simonw/sqlite-utils#928 ·
Mantenedores costumam responder em até 3 dias
-
Tests use CliRunner.isolated_filesystem(), which is deprecated and will be removed in Click 9.0Talvez já em andamento @devpryan7792 assumiu há 12 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
simonw/sqlite-utils#916 ·
Mantenedores costumam responder em até 3 dias
-
rows_from_file() splits a single-column CSV file on a letter, or raises csv.ErrorTalvez já em andamento @L4XB assumiu há 20 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
simonw/sqlite-utils#907 ·
Mantenedores costumam responder em até 3 dias
-
enable_fts() exhausts iterator columns before populating the indexTalvez já em andamento @syahra712 assumiu há 26 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
simonw/sqlite-utils#902 ·
Mantenedores costumam responder em até 3 dias
-
rows_from_file() ignores ignore_extras= and extras_key= for anything that isn't Format.CSVTalvez já em andamento @feiiiiii5 assumiu há 37 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
simonw/sqlite-utils#892 ·
Mantenedores costumam responder em até 3 dias
Todas as issues de simonw/sqlite-utils
Issues semelhantes
-
Remove the `pull_request_target` workflow before GitHub blocks itTalvez já em andamento @jat255 assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
IBM/mcp-context-forge#7483 ·
Mantenedores costumam responder em até 2 dias
-
bug good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
[Bug Report]: OpenAI 辅助 API 连通性测试因输出上限仅 1 token 误报“未知错误”Talvez já em andamento @fjfanjian assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Project-N-E-K-O/N.E.K.O#3640 ·
Mantenedores costumam responder em até 1 dia
-
author-page correction
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
acl-org/acl-anthology#10808 · 1 comentário ·
Mantenedores costumam responder em até 1 dia