What manticoresoftware/manticoresearch shipped
Written by FoxPlug from the repository's own releases; not affiliated with Manticoresearch. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/manticoresoftware/manticoresearch; Manticoresearch did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- Fixed streaming SQL queries so columnar attributes and stored fields are materialized even when not explicitly selected, and avoided duplicate stored-field expressions that caused errors in mysqldump. Pull request #5064
- Fixed
index_convertercrashes when using --config and --path by keeping the loaded configuration alive for the full conversion loop, and added a clear error for --path --all. Pull request #5060 - Fixed a build failure with GCC 14 in sortergroup.cpp by correcting a using-declaration that GCC 14 rejected. Pull request #5031
- Added tracking of per-test CLT failure rates across CI runs, with a daily or on-demand report of failure rates over time. Pull request #5001
- Added Grafana 13.3 to the tested minor versions and compatibility replay, updated the supported range and changelog in English, Russian and Chinese, and stabilized fresh Grafana startup in Docker-in-Docker. Pull request #5056
- Updated a conversational follow-up test to allow empty KNN sources when the rewritten query yields no matches after the distance threshold. Pull request #5078
- Updated the third conversational follow-up test to allow empty KNN sources while still requiring the clustering document if sources are returned. Pull request #5080
- Updated the executor version from 1.4.6 to 1.4.7, which includes a build dependency revision. Pull request #5074
Why it matters
This week brings stability fixes for streaming SQL queries and index_converter, plus a GCC 14 build fix. CI now tracks per-test CLT failure rates over time, and Grafana 13.3 integration coverage was added.
Changelog entry
- Fix columnar attribute handling in streaming SQL queries: materialize unselected columnar attributes and stored fields, avoid duplicate stored-field expressions causing mysqldump errors. Pull request #5064
- Fix
index_convertercrashes with --config and --path; reject --path --all with a clear error. Pull request #5060 - Fix build with GCC 14 in sortergroup.cpp by correcting a using-declaration. Pull request #5031
- Track per-test CLT failure rates across CI runs and add a daily or on-demand report. Pull request #5001
- Add Grafana 13.3 integration coverage, update supported range and changelog in English, Russian and Chinese, and stabilize Grafana startup in Docker-in-Docker. Pull request #5056
- Allow empty KNN sources in conversational follow-up test. Pull request #5078
- Allow empty KNN sources in third conversational follow-up test. Pull request #5080
- Update executor version from 1.4.6 to 1.4.7. Pull request #5074
Week's updates: streaming SQL columnar fixes, index_converter crash fixes, GCC 14 build fix, per-test CLT failure tracking, Grafana 13.3 coverage. Releases 31.0.14–31.0.17.
This week we fixed streaming SQL queries to materialize columnar attributes and stored fields even when not selected, avoiding mysqldump errors. We fixed index_converter crashes with --config and --path and added a clear error for --path --all. We fixed a GCC 14 build failure in sortergroup.cpp. CI now tracks per-test CLT failure rates over time with a daily or on-demand report. We added Grafana 13.3 to tested versions and updated supported range documentation. Releases 31.0.14 through 31.0.17 include these changes.
Week of October 26, 2026
What shipped
- Release 31.0.13 fixed a filter tree issue involving weight. Release
- Release 31.0.11 fixed filters through the columnar scan that lost or repeated the last rows of a disk chunk. Release
- Release 31.0.10 fixed JOIN with REGEX() on a joined table attribute returning no rows. Release
- Release 31.0.9 fixed JSON
query_stringwith only negated terms returning the inverse result. Release - Release 31.0.8 fixed!=, NOT IN and NOT BETWEEN through the secondary index losing 64 rows at a 64-row range boundary. Release
- Release 31.0.7 fixed COUNT(DISTINCT) on rowwise strings being 2x slower since a prior change. Release
- Release 31.0.6 fixed JSON and multi-value filters returning different rows by storage and access path. Release
- Documentation was added for memory and disk usage of
bulk_import. Pull request #5050 - A fix ensured JSON and multi-value filters return consistent rows across storages and access paths. Pull request #5034
- A fix addressed COUNT(DISTINCT) on rowwise strings being 2x slower by replacing per-byte tolower() calls with a lookup table. Pull request #5039
Why it matters
This week brought several releases that fix query correctness issues affecting filters, joins, and negation, which helps users get consistent results. Performance of COUNT(DISTINCT) on strings was restored, and new documentation covers bulk import resource usage.
Changelog entry
- Release 31.0.13: fixed filter tree with weight. Release
- Release 31.0.11: fixed filters through the columnar scan losing or repeating the last rows of a disk chunk. Release
- Release 31.0.10: fixed JOIN with REGEX() on a joined table attribute returning no rows. Release
- Release 31.0.9: fixed JSON
query_stringwith only negated terms returning the inverse result. Release - Release 31.0.8: fixed!=, NOT IN and NOT BETWEEN through the secondary index losing 64 rows at a 64-row range boundary. Release
- Release 31.0.7: fixed COUNT(DISTINCT) on rowwise strings being 2x slower since a prior change. Release
- Release 31.0.6: fixed JSON and multi-value filters returning different rows by storage and access path. Release
- Docs: added memory and disk usage of
bulk_import. Pull request #5050
New releases 31.0.6 through 31.0.13 fix query correctness for columnar filters, JOIN with REGEX, JSON negation, and secondary index range boundaries. COUNT(DISTINCT) on strings is no longer 2x slower. Docs now cover bulk_import memory and disk usage.
This week we published releases 31.0.6 through 31.0.13, addressing several query correctness issues: filters through columnar scans no longer lose or repeat rows, JOIN with REGEX() on joined table attributes returns expected rows, JSON query_string with only negated terms returns the correct result, and!=, NOT IN, NOT BETWEEN through the secondary index no longer lose rows at range boundaries. We also fixed a performance regression where COUNT(DISTINCT) on rowwise strings was 2x slower, and made JSON and multi-value filters return consistent rows across storages and access paths. Documentation now includes memory and disk usage guidance for bulk_import.
Week of October 19, 2026
What shipped
- Manticore.json updates are now crash-safe: the new configuration is synced before replacing the old file, which is swapped in atomically, so a power loss during a DDL operation no longer leaves an empty registry. Pull request #5017
- Replication join now fails cleanly when cluster nodes cannot reach or resolve each other; the cluster protocol version moved to 0x110, so all nodes of a cluster must be upgraded together. Pull request #5015
- Secondary index unions no longer return duplicate documents when several filter values match the same row, fixing incorrect hit totals and facet counts. Pull request #5011
- The SST donor read loop now fails with an unexpected EOF error when a pread returns zero before a chunk completes, and advances the file offset after a short read instead of repeating bytes. Pull request #5018
- COUNT(DISTINCT) on strings now counts values the way GROUP BY groups them under the session collation, including columnar and rowwise strings. Pull request #5010
- Crashes in background system tasks now report the active operation and table name, using coroutine-aware task data instead of possibly stale thread-local query data. Pull request #4987
- The MySQL handshake parser now uses bounded string handling and rejects unterminated username, database and authentication plugin strings, removing an out-of-bounds read. Pull request #4997
- String range comparisons with secondary indexes are fixed. Pull request #5007
- Test Kit now runs with the packaged Executor build instead of GitHub Release assets, with dev-only dependencies restored. Pull request #5028
- Mysqldump coverage now includes MySQL 26.10, with the documented maximum MySQL version raised from 26.7 to 26.10. Pull request #5020
Why it matters
This week brought a breaking replication change: cluster nodes of different protocol versions cannot join each other, so a cluster must be upgraded as a whole, and join failures now surface the unreachable node's error. It also closed several correctness bugs, including duplicate rows from secondary index unions, collation-aware COUNT(DISTINCT) on strings and unsafe manticore.json replacement during DDL. The 31.0.x and 30.0.0 releases carry these fixes.
Changelog entry
- Fix: make manticore.json updates crash-safe by syncing before atomic replacement Pull request #5017
- BREAKING: replication join fails cleanly when nodes cannot reach or resolve each other; cluster protocol version 0x110 Pull request #5015
- Fix: deduplicate row IDs in secondary index unions on MVA and JSON arrays Pull request #5011
- Fix: SST donor read loop hung on zero read and repeated bytes after short read Pull request #5018
- Fix: COUNT(DISTINCT) on strings now respects session collation Pull request #5010
- Fix: prevent out-of-bounds reads in MySQL handshake parsing Pull request #4997
- Fix: string range comparisons with secondary indexes Pull request #5007
- Fix: crash diagnostics report active operation and table for background system tasks Pull request #4987
- Ci: add mysqldump coverage for MySQL 26.10 Pull request #5020
- Ci: use packaged Executor for Test Kit and restore dev-only dependencies Pull request #5028
- Fix(ci): resolve bundle dependencies from release candidates Pull request #5026
- Fix(ci): use published Executor 1.4.6 in Test Kit Pull request #5025
31.0.0 is out: manticore.json writes are now crash-safe and replacement is atomic. Replication join now fails cleanly when nodes cannot reach each other; protocol moved to 0x110, so upgrade all nodes together. Duplicate-row fixes for secondary index unions, collation-aware COUNT(
This week's releases include 31.0.0, which makes manticore.json updates crash-safe by syncing the new file before atomically replacing the old one, so a power loss during DDL no longer leaves an empty registry. 30.0.0 is a breaking change for replication: JOIN CLUSTER now checks reachability before state transfer and fails with the failing node's error, and the cluster protocol is now 0x110, so all nodes must be upgraded together. Also fixed: duplicate rows from secondary index unions on MVA and JSON arrays, COUNT(DISTINCT) on strings ignoring session collation, a hung SST donor read loop on zero or short reads, out-of-bounds reads in the MySQL handshake parser, and string range comparisons with secondary indexes. mysqldump coverage now includes MySQL 26.10.
Week of October 12, 2026
What shipped
- Release 29.18.1 fixes a crash on hybrid search over a distributed table, landing the fix from pull request 5004. Release
- Release 29.18.2 bounds sort bins in the secondary index builder by bytes. Release
- Release 29.18.0 adds prefetch for vector rescoring with rowwise storage. Release
- Release 29.17.1 validates replication file names, rejecting names that are not plain basenames. Release
- Release 29.17.0 makes
bulk_importhandle auto-id. Release - Release 29.16.0 highlights the chunk of an auto-chunked text that matched a KNN query. Release
- Indextool --docstore-bad-ids lists documents with damaged stored fields, and indextool --check now reports rows not covered by docstore blocks. Pull request #4996
- Coroutine timed waiters are now guarded during timer registration and dispatch to prevent a notifier resuming a waiter in between. Pull request #4993
- Release 29.17.2 disables MCL build testing on packaging. Release
- Pull request 4999 adds shared HTTP
bulk_importinto one RT table from concurrent requests. Pull request #4999
Why it matters
This week brings several releases that fix crashes, including hybrid search over a distributed table, and tighten replication file name validation. It also adds prefetch for vector rescoring, auto-id support in bulk_import, and KNN chunk highlighting for auto-chunked text. Operators also get new indextool output for documents with damaged stored fields.
Changelog entry
- 29.18.2: bound sort bins in the secondary index builder by bytes. Release
- 29.18.1: fixed a crash on hybrid search over a distributed table. Release
- 29.18.0: added prefetch for vector rescoring with rowwise storage. Release
- 29.17.2: disabled MCL build testing on packaging. Release
- 29.17.1: validate replication file names. Release
- 29.17.0:
bulk_importhandles auto-id. Release - 29.16.0: highlight the chunk of an auto-chunked text that matched a KNN query. Release
- Indextool --docstore-bad-ids lists documents with damaged stored fields; --check reports rows not covered by docstore blocks. Pull request #4996
- Coroutine timed waiters guarded during timer registration and dispatch. Pull request #4993
- Shared HTTP
bulk_importinto one RT table from concurrent requests. Pull request #4999 - Replication file names validated as plain basenames, rejecting empty names, dot names and path components. Pull request #4998
- Fixed a crash on hybrid search over a distributed table. Pull request #5004
New releases this week: 29.18.2, 29.18.1, 29.18.0, 29.17.2, 29.17.1, 29.17.0 and 29.16.0. Hybrid search over distributed tables no longer crashes, replication file names are validated, vector rescoring gets prefetch, bulk_import handles auto-id, and KNN results can highlight the
Several Manticoresearch releases landed this week, from 29.16.0 through 29.18.2. A crash on hybrid search over a distributed table is fixed, replication file names are now validated as plain basenames, and MCL build testing is disabled on packaging. On the feature side, vector rescoring gains prefetch with rowwise storage, bulk_import handles auto-id, and KNN queries can highlight the chunk of an auto-chunked text that matched. indextool --docstore-bad-ids lists documents with damaged stored fields, and indextool --check now reports rows not covered by docstore blocks.
Week of October 5, 2026
What shipped
- Added a per-table knn rescore budget, vector prefetch for columnar rescoring, and
early_terminationon agents. Pull request #4969 - Split ramchunk into equal row ranges when building the hnsw graph and build hnsw in parallel on FLUSH RAMCHUNK. Pull request #4978
- Fixed a performance regression on filtered knn queries. Pull request #4985
- Bounded SST FILE_RESERVE hash metadata by adaptively increasing SST chunk sizes when SHA1 metadata would exceed the cluster packet budget. Pull request #4976
- Fixed merging MVA groups without source attributes in multi-table queries. Pull request #4990
- Fixed a performance regression introduced by commit dbc40aa by updating the columnar submodule hash. Pull request #4973
- Fixed apostrophe escaping in fuzzy SQL queries by updating Buddy to version 4.4.7. Release
- Added a CLT test for fuzzy apostrophe escaping. Pull request #4984
- Introduced a new --realistic mode in manticore-load. Release
- Updated manticore-load from version 1.28.0 to 1.29.0. Pull request #4991
Why it matters
This week brought several performance fixes, including filtered knn queries and a regression in columnar performance. New features such as per-table knn rescore budget and parallel hnsw building improve query efficiency. Several releases include these fixes, making the search experience more stable and faster for users.
Changelog entry
- Feat: per-table knn rescore budget, vector prefetch for columnar rescoring,
early_terminationon agents Pull request #4969 - Fix: split ramchunk in equal row ranges when building hnsw graph; build hnsw in parallel on FLUSH RAMCHUNK Pull request #4978
- Fix: fixed a performance regression on filtered knn queries Pull request #4985
- Fix: bound SST FILE_RESERVE hash metadata Pull request #4976
- Fix: merge MVA groups without source attributes Pull request #4990
- Fix: regression of performance after dbc40aa Pull request #4973
- Fix: apostrophe escaping in fuzzy SQL queries Release
- Ci: add CLT test for fuzzy apostrophe escaping Pull request #4984
- Feat: manticore-load --realistic mode Release
- Update load version from 1.28.0 to 1.29.0 Pull request #4991
- Ci: fix artifact upload verification race in build jobs Pull request #4988
- Moved CLT cases into ubertest 197; added HAVING case to run all CI stages Pull request #4992
New releases: per-table knn rescore budget, parallel hnsw build, fixes for filtered knn regression, MVA merge, apostrophe escaping, and more. See changelog.
This week we shipped several fixes and improvements. Performance regressions in filtered knn and columnar queries were fixed. MVA group merging in multi-table queries now works without source attributes. We added a per-table knn rescore budget, vector prefetch for columnar rescoring, and early termination on agents. HNSW graph building now splits ramchunks into equal row ranges and runs in parallel on FLUSH RAMCHUNK. SST FILE_RESERVE hash metadata is now bounded. Fuzzy SQL apostrophe escaping was fixed via Buddy 4.4.7. manticore-load gained a --realistic mode. Full details in the changelog.
Week of September 28, 2026
What shipped
- Hybrid queries now support facets and JSON aggregations that execute over fused documents with counts reflecting post-fusion filtering. Release
- DDL validation now reports unsupported or missing column types clearly and suggests database types where applicable. Release
- CI candidate cleanup was fixed. Pull request #4955
Why it matters
Facet support in hybrid search enables more sophisticated result analysis on fused datasets. Clearer DDL error messages reduce debugging time when creating tables with unsupported column types.
Changelog entry
- Hybrid queries now execute facets and JSON aggregations over fused documents, with counts reflecting post-fusion filtering Release
- DDL validation reports unsupported or missing column types more specifically and suggests database types where applicable Release
- Improved UUID column type handling in DDL Release
- Fixed CI candidate cleanup Pull request #4955
29.13.1 improves DDL error messages for unsupported column types. 29.13.0 adds facet/aggregation support in hybrid search with RRF fusion.
Two releases this week: 29.13.0 brings facet and JSON aggregation support to hybrid search, with counts properly reflecting post-fusion filtering. 29.13.1 improves DDL validation by reporting unsupported column types clearly and suggesting database types where applicable, making table creation less error-prone.
Week of September 21, 2026
What shipped
- Release 29.12.0 adds direct-to-disk bulk import for real-time tables through SQL and HTTP /bulk, building each batch as a disk chunk and publishing on commit to avoid RAM-chunk staging, with support for rollback, staging cleanup, duplicate-ID handling, and PURGE BULK_IMPORT. Release
- Release 29.12.2 fixes postlimit expressions in distributed tables with multiple locals having different settings. Release
- Debian and RHEL build issues are resolved by replacing std::filesystem with boost filesystem. Pull request #4940
- Fixed a race condition where REPLACE/DELETE operations paused by FREEZE could miss disk chunks being saved during the state transition. Pull request #4925
- Fixed a disk chunk ID race condition between parallel merges caused by non-atomic chunk ID generation in merge workers. Pull request #4924
- Added freeze support for plain tables as a prerequisite for manticore-backup plain mode support. Pull request #4919
- Manual documentation expanded to cover HTTP errors, readiness checks, numerical precision, geo-distance models, KNN, and unsupported mathematical functions. Pull request #4927
- Fixed memory retention issue where MVA group-by source data was not properly released. Pull request #4921
- Fixed geopoly contains operation to preserve EXIST float type correctly. Pull request #4909
- Fixed JSON highlight queries to properly escape apostrophes. Pull request #4913
Why it matters
This week brings significant improvements to real-time table operations with the new direct-to-disk bulk import feature for better performance and build reliability across platforms. Several critical race conditions and data handling issues in distributed tables and chunk management have been fixed, improving system stability.
Changelog entry
- 29.12.2: fixed postlimit exprs in distributed tables of several locals with different settings Release
- Fixed debian and rhel build issues by replacing std::filesystem with boost filesystem Pull request #4940
- 29.12.1: fixed build issues by replacing std::filesystem with boost filesystem Release
- 29.12.0: added direct-to-disk bulk import for real-time tables with SQL and HTTP /bulk support, rollback, and duplicate-ID handling Release
- 29.11.6: fixed REPLACE/DELETE paused by FREEZE missing disk chunk saved meanwhile Pull request #4925
- Fixed disk chunk id race between parallel merges Pull request #4924
- 29.11.4: fixed preserve EXIST float type in geopoly contains Release
- 29.11.3: fixed avoid retaining MVA group-by source Release
- 29.11.2: bumped buddy version from 4.4.4 to 4.4.5 Release
- 29.11.1: fixed escape apostrophes in JSON highlight queries Release
- Added freeze for plain tables Pull request #4919
29.12.2 shipped: direct-to-disk bulk import for RT tables, fixed postlimit in distributed setups, resolved FREEZE/REPLACE races, and improved build compatibility.
Week 29 brought major improvements to Manticoresearch: direct-to-disk bulk import for real-time tables now enables faster large-volume data insertion, build stability improved across Debian and RHEL, and critical race conditions fixed in chunk merging and FREEZE operations. Documentation expanded for HTTP behavior, geo-distance models, and numerical precision.
Week of September 14, 2026
What shipped
- Release 29.10.0 adds support for ONNX models without token types, including BAAI/bge-m3 embeddings. Release
- Fixed a deadlock that could occur when concurrent BERT auto-embedding requests blocked on shared resources. Pull request #4916
- Fixed docid lookup synchronization with index format version during ALTER operations and repaired v70 lookups under v71 headers. Pull request #4858
- Increased implicit
max_matchesin non-rescored KNN queries to match the k parameter. Pull request #4900 - Fixed an implicit sorter tdigest memory leak. Pull request #4912
- Added test coverage for CHAT MODEL to verify it correctly accepts
api_key,base_url, and timeout parameters. Pull request #4896 - Added MariaDB 13.0 mysqldump coverage to CI testing. Pull request #4911
- Updated buddy dependency to version 4.4.4. Pull request #4901
Why it matters
This week's updates address critical concurrency issues in embedding operations and fix synchronization problems with index format versions. The addition of BAAI/bge-m3 support expands embedding model compatibility for users working with semantic search.
Changelog entry
- Feat: support ONNX models without token types (e.g. BAAI/bge-m3) Release
- Fix: prevent deadlock in concurrent BERT auto-embeddings Pull request #4916
- Fix: keep docid lookup in sync with index format version on ALTER; repair v70 lookups under v71 header Pull request #4858
- Fix: increase implicit
max_matchesto match k in non-rescored KNN queries Pull request #4900 - Fix: implicit sorter tdigest leak Pull request #4912
- Fix: CHAT MODEL now correctly accepts
api_key,base_url, and timeout Pull request #4896 - Ci: add MariaDB 13.0 mysqldump coverage Pull request #4911
- Deps: update buddy to 4.4.4 Pull request #4901
29.10.0 ships support for BAAI bge-m3 ONNX models, fixes a deadlock in concurrent BERT embeddings, and resolves index format sync issues on ALTER operations.
29.10.0 is available with several important fixes. Concurrent BERT auto-embedding requests no longer deadlock. Docid lookup now syncs correctly with index format versions during ALTER operations. ONNX models without token types are now supported, including BAAI/bge-m3. KNN queries also get improved max_matches handling.