Calling .not_.text_search(...) sends a positive full-text filter. For example:
client.table("documents").select("*").not_.text_search(
"content", "cat", {"type": "plain", "config": "english"}
)
The current builder sends content=plfts(english).cat; the negated form is content=not.plfts(english).cat. The sync and async text_search() methods append parameters directly instead of going through filter(), which consumes negate_next. The convenience fts() methods already use filter().
This is the separate text_search case mentioned in #1616. #1619 changes or_() and does not change either text_search() method. I plan to route these methods through the existing filter path and add sync/async regressions for search modes, language configuration, and the next filter remaining positive.
Agent-assisted contribution: Codex inspected the current source and prepared this report under Bortlesboat's direction. No database writes or live Supabase requests were made.
Calling
.not_.text_search(...)sends a positive full-text filter. For example:The current builder sends
content=plfts(english).cat; the negated form iscontent=not.plfts(english).cat. The sync and asynctext_search()methods append parameters directly instead of going throughfilter(), which consumesnegate_next. The conveniencefts()methods already usefilter().This is the separate
text_searchcase mentioned in #1616. #1619 changesor_()and does not change eithertext_search()method. I plan to route these methods through the existing filter path and add sync/async regressions for search modes, language configuration, and the next filter remaining positive.Agent-assisted contribution: Codex inspected the current source and prepared this report under Bortlesboat's direction. No database writes or live Supabase requests were made.