Version 28.6.6
Released: July 31st 2026
This release adds UUID document IDs and ordered, limited GROUP_CONCAT(), with fixes across replication, backups, query processing, SQL compatibility, and secondary indexes.
New Features and Improvements
- 🆕 v28.6.0 Issue #4746 Added ordered, limited GROUP_CONCAT() for explicit SphinxQL
GROUP BYqueries:GROUP_CONCAT(expression ORDER BY ... [SEPARATOR '...'] LIMIT N)keeps the topNvalues per group in the requested order. - 🆕 v28.5.0 Issue #1429 Added UUID document IDs for real-time tables via
id uuid, including explicit or automatically generated IDs, UUID equality andINfilters, and UUID-basedREPLACE,UPDATE, andDELETE.
Bug Fixes
- 🪲 v28.6.6 Issue #4741 Fixed
USER()parsing after authentication support madeUSERa keyword, restoring MySQL clientstatuscommand compatibility. - 🪲 v28.6.5 Issue #4764 Fixed CALL SNIPPETS taking seconds on complex boolean queries when
boolean_simplifyis enabled, and restored expected highlighting for affected queries. - 🪲 v28.6.4 Issue #4737 Fixed OPTIMIZE TABLE parsing for qualified
system.<table>names, allowing physical sharded tables to be optimized. - 🪲 v28.6.3 Issue #138 Updated manticore-backup to 1.10.2, fixing successful backups leaving RT tables frozen and subsequent writes blocked indefinitely.
- 🪲 v28.6.2 Issue #4758 Fixed obsolete RT external files being left behind after
ALTER,TRUNCATE, chunk removal, or optimization, and prevented unrelatedALTER TABLEchanges from losing Jieba tokenization settings; unsupported effective Jieba setting changes now fail explicitly. - 🪲 v28.6.1 Issue #4750 Fixed authenticated replication state transfer so
ALTER CLUSTER ... ADDcan add existing populated RT tables instead of failing with retries exhausted. - 🪲 v28.5.3 Issue #4730 Fixed long exact and phrase-like queries potentially corrupting memory or crashing
searchdby accounting for their full term width in the query stack guard. - 🪲 v28.5.2 PR #4729 Improved
local_dfquery processing for multi-chunk RT and distributed tables by deduplicating repeated keyword statistics, avoiding excessive pre-search work for large repeatedORand phrase queries. - 🪲 v28.5.1 Issue #4726 Fixed a SphinxQL connection-handling race that could spin workers at 100% CPU and leave
searchdpermanently unresponsive when clients connected during startup or aborted an early SSL upgrade. - 🪲 v28.4.11 PR #4725 Improved
indextool --checkto validate secondary-index structure and payloads, reporting corrupted.spidxfiles as check failures instead of crashing. - 🪲 v28.4.10 PR #4735 Fixed the Ruby API fixture's response parsing to preserve valid
"0"chunks, matching the PHP client behavior. - 🪲 v28.4.9 Issue #4595 Updated MCL to 13.8.2, fixing a StreamVByte decoder over-read that could crash queries using secondary indexes, including
GROUP BYon JSON fields. - 🪲 v28.4.8 PR #4703 Fixed PHP API response parsing when a valid response chunk ends with the string
"0", preventing falsefailed to read searchd responseerrors for affected packet sizes. - 🪲 v28.4.7 PR #4721 Fixed a concurrent
SHOW INDEX ... STATUSrace that could corrupt query-stat percentile calculations (p95/p99). - 🪲 v28.4.6 Issue #4677 Fixed document-ID
IN(...)filters silently returning no rows for valid unsigned 64-bit IDs aboveLong.MAX_VALUE; invalid out-of-range document IDs now fail validation without restricting validmulti64values. - 🪲 v28.4.5 Issue #4633 Fixed a crash when a
LEFT JOINquery uses multipleFACETclauses by preventing join multi-facet sorters from being cleaned up twice.