You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
search --type bm25 fails on tables with a column named score (duplicate relevance column) #179
hotdata search --type bm25 fails when the target table has a user column named score, because the BM25 relevance column emitted by bm25_search() is also named score, producing a duplicate-column collision before projection. Affected tables cannot be BM25-searched at all from the CLI.
Error
Schema contains duplicate qualified field name "bm25_search()".score
Repro
# 1. Managed DB with a table that has a column literally named `score`
hotdata databases create --name "bm25 score repro" --catalog bm25repro --table widgets
hotdata databases set<db-id># widgets parquet has columns: id, name (text), score (double)
hotdata databases load --catalog bm25repro --table widgets --file widgets.parquet
# 2. BM25 index on the text column
hotdata indexes create --catalog bm25repro --table widgets --column name --type bm25
# 3. Search -> collision
hotdata search "alpha" --type bm25 --table bm25repro.public.widgets --column name
# error: Schema contains duplicate qualified field name "bm25_search()".score
Notes
--select id,name does not avoid it — the collision happens in the generated query's schema before the projection is applied.
Confirmed BM25 search works fine on a table without a score column (e.g. the listings demo table), where the relevance column is surfaced as score. That confirms the user's score column is the culprit.
Expected
A table that happens to have a score column should still be BM25-searchable. Options:
Alias the relevance column to a non-colliding / namespaced name (e.g. _bm25_score or bm25_score), or
Detect the collision and auto-suffix the generated relevance column.
Note: PR #180 (suppressing the current-database footer for non-TTY stdout) is unrelated to this issue. It surfaced during the same E2E pass but addresses a separate concern; this BM25 score-column collision is still open.
Activity
eddietejeda commentedon Jun 24, 2026
Note: PR #180 (suppressing the current-database footer for non-TTY stdout) is unrelated to this issue. It surfaced during the same E2E pass but addresses a separate concern; this BM25
score-column collision is still open.