| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| mo-v4.1.0-linux-arm64.zip | 2026-07-11 | 76.5 MB | |
| mo-v4.1.0-linux-x86_64.zip | 2026-07-11 | 86.1 MB | |
| MatrixOne-v4.1.0 source code.tar.gz | 2026-07-11 | 32.4 MB | |
| MatrixOne-v4.1.0 source code.zip | 2026-07-11 | 37.5 MB | |
| README.md | 2026-07-11 | 33.6 kB | |
| Totals: 5 Items | 232.6 MB | 0 | |
Release date: July 11, 2026 MatrixOne version: v4.1.0
MatrixOne 4.1.0 is a major feature and stability release on top of 4.0. It adds SQL Task execution, Vector Index Plugin Framework with cuVS, writable external tables, GIS/H3/S2 geospatial support, HLL sketch functions, and broad MySQL/PostgreSQL SQL compatibility improvements. On the reliability side, it hardens logtail publishing, lock-service bind fencing, txn workspace merge ordering, RSS/cache pressure control, checkpoint flush prioritization, and CN health circuit breaking — alongside extensive fixes across REPLACE/INSERT, planner, parquet external tables, data branch, and fileservice.
Key Improvements
SQL Engine & Compatibility
- SQL Task Execution: Add SQL Task execution support with multi-CN metadata visibility and BVT coverage
- PostgreSQL-style UPDATE: Support
UPDATE ... SET ... FROM ... WHEREsyntax and planner dedup by targetrow_id - MySQL DML Alignment: Align
ON DUPLICATE KEY UPDATEandREPLACEsyntax variants with MySQL semantics - Advanced SQL Features: Support nested correlated subqueries,
ORDER BY NULL/GROUP BY NULL, chainedRENAME TABLE,INT + INTERVAL/INT - INTERVAL,LIMIT 0, and reserved keywords as aliases afterAS - Index & Plan Enhancements: Support enum/prefix text indexes, deterministic paired range index selection, nullable IN-list runtime semantics, and zonemap pruning for nullable IN lists
- New Built-in Functions: Add
JSON_LENGTH, HLL sketch functions, lock-wait/lock functions,BIT_COUNT, interval helpers, UUID functions,NAMECONST, regex support, andDOUBLE PRECISIONas aDOUBLEsynonym - Parser & Types: Support array column type syntax,
POSITION(substr IN str), and human-readable datetime strings inMO_TStable hint
Vector, Fulltext & GIS
- Vector Index Plugin Framework: Introduce pluggable vector index framework with cuVS C++ library integration
- Vector Performance: Coalesce checksummed
ReadAt, batchUnionBatchvarlena materialization, and prefix offset collection optimizations - Fulltext: Add dict-based tokenizer and fulltext index rewrite support for joins
- GIS: Add geometry engine plus S2 and H3 geospatial cell functions
External Tables & Data Loading
- Writable External Tables: Support
INSERT/LOADinto stage files with CN-local file stage writes - Parquet & Hive: Enhance Hive-partitioned Parquet external tables, parallelize Parquet load by row group, harden external Parquet reads (S3 amplification, LIST/UINT64 edge cases), and add broad BVT coverage
- LOAD Optimizations: Keep large
LOADexternal scan multi-CN, bound first-line row size sampling, and fix year-column / datetime load issues
Storage, Memory & Execution
- RSS Pressure Control: Add RSS pressure cache controller, keep meta cache out of RSS eviction, and port minimal RSS cache pressure protection
- Spill & Aggregation: Implement spill support for
merge_order; free merge group spill aggregate states and stop at max spill level instead of erroring - ALTER / Index Backfill: Optimize alter copy and index backfill memory; limit alter copy pipeline flush concurrency
- CN Proxy & Health: Add CN health circuit breaker to skip overloaded CNs
Data Branch, CDC & Platform
- Data Branch: Unify diff/merge collect-range over arbitrary DAG depth, optimize merge apply execution, and fix privilege model / table clone SQL
- CDC: Align CDC pause visible state and support compatible
SHOW/DROPsyntax - Platform: Upgrade to Go 1.26.4; add
mo-devandmo-bug-triageagent skills; add protected database support
Key Bug Fixes
Transaction, Logtail & Lock Service
- Logtail Publishing: Stream-publish txn tails to remove batch-wide wait
- Txn Lifecycle: Preserve txn write order after workspace merge; close txn operator on wait failure; avoid recovery async task panic
- Lock Table Binds: Fence txns on bind changes; refine keeper bind refresh on keep failures; check bind before lock success; clean stale range waiters; validate orphan remote txns; check lock table binds during
LOAD - Locking Semantics: Allow lock tables in transactions; prevent OOM in
PKPersistedBetweenunder high-concurrency lock checks
Memory, Cache & Fileservice
- RSS & Cache: Reduce RSS growth from
dedupLoadsync.Map retention and flush convoy; bound full-object disk cache wait fallback; stream full-object disk cache without read wait amplification - Fileservice: Reduce memory pressure from concurrent cache allocations; keep disk cache file state consistent; avoid closing idle upload connections
- S3 & Object Storage: Restore defense-in-depth for CN flush S3 memory throttling; fix rscthrottler double-counting of RSS/reserved; retry QCloud PUT with seekable reader and retryable status handling
- Checkpoint: Prioritize stalled checkpoint bounded flush
SQL Correctness & Planner
- REPLACE / INSERT: Resolve unique-key conflicts when PK is auto-generated; handle one new row conflicting with multiple old rows via different unique keys; allow replace duplicate source keys; expand const columns by row count in preinsert; keep insert memory-pressure flush concurrency fixed
- UPDATE / DELETE: Fix
DELETE with JOINdeleting all rows instead of only matched rows; fix fallback UPDATE planner nondeterministic project layout and generated-column correctness - SELECT / Plan: Align
SELECT ... FOR UPDATEwith MySQL on derived/agg/subquery; guard prepared phy scope shape mismatch; sanitize non-finite plan stats; prevent join order parent cycles; fixNULLleft operand inINpredicates - Type & Function Fixes: Fix
LEAD/LAGcast, div-by-zero, math domain errors, GREATEST/LEAST numeric promotion, coalesce decimal scale, and preserve text type in conditional string casts - Wire Protocol: Return
T_blobforFROM_BASE64,UNHEX,AES_DECRYPTto match MySQL wire protocol
DDL, Bootstrap & Metadata
- DDL Safety: Reconcile deleted tenant upgrade tasks; skip stale relations during drop database; restore skip for already-deleted relations; honor
IF NOT EXISTSforCREATE TABLE ... LIKEandIF EXISTSfor drop index - ALTER / Clone: Fix alter copy add primary key precheck; fix table clone visibility for repeated alter; sync
Name2ColIndexwhen appending__mo_rowidto index tableTableDef - Restore / PITR: Support
ACCOUNTclause inRESTORE ... FROM PITR; fix restore external table handling; fix DropDatabase SnapshotTS restore race
LogService, Proxy & Runtime
- LogService: Skip zombie check for discovery proxy; create on-the-fly clients outside pool lock; fix stale replica truncation
- Proxy / Pipeline: Clear transfer latch after unsafe attempt; bound pipeline cleanup waits; register remote dispatch receivers early; fold variable expressions before remote run
- HNSW / CDC / ISCP: Force single-thread HNSW build on CDC/sync path then restore multi-thread build with vendored USearch fix; fix HLC ahead-of-wall-clock causing ISCP update failure
Data Branch, External & Frontend
- Data Branch: Avoid data branch merge channel race; optimize no-PK merge apply on main; fix create table clone SQL and privilege model
- Frontend / Auth: Scope table and view grant option checks; keep DDL ownership on matched role; align role rule merge semantics; refresh global sysvars for
SHOW GLOBAL VARIABLES; support global timeout sysvars; requireDELETEprivilege forREPLACEconflicts - Session / Sysvar:
Session.GetSessionSysVarreturns nil for registered sysvars missing from per-session map - Test / Dev: Replace sleep with
@wait_expectforstatement_inforeadiness; makemake dev-upwork with readable temp compose files and HAKeeper bootstrap
What's Changed
- fix(logtail): stream-publish txn tails to remove batch-wide wait (#24325) by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24326
- fix: add bounded retry and error propagation to TransferPage write path by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24339
- fix(fileservice): reduce memory pressure from concurrent cache allocations by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24352
- fix(lockservice): fence txns on bind changes by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24363
- fix divByZero by @daviszhen in https://github.com/matrixorigin/matrixone/pull/24355
- fix(lockservice): refine keeper bind refresh on keep failures by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24384
- fix(lockservice): check bind before lock success by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24395
- fix: enable vector index with single-row vector providers by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24394
- fix(bootstrap): reconcile deleted tenant upgrade tasks by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24396
- perf(replace): reduce allocations and vector copies in REPLACE INTO hot path by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24389
- fix(data-branch): unify diff/merge collect-range over arbitrary DAG depth by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24371
- Improve role base rule rewrite by @ouyuanning in https://github.com/matrixorigin/matrixone/pull/24393
- fix(plan): limit range merge to composite sort keys by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24417
- fix(plan): make paired range index selection deterministic by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24418
- test(load_data): add BVT case for parquet date32 to DATETIME (#24287) by @Ariznawlll in https://github.com/matrixorigin/matrixone/pull/24314
- fix leag/lag cast by @daviszhen in https://github.com/matrixorigin/matrixone/pull/24424
- fix: prevent OOM in PKPersistedBetween under high-concurrency lock checks by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24373
- test: add BVT coverage for parquet external tables by @Ariznawlll in https://github.com/matrixorigin/matrixone/pull/24438
- fix(replace): resolve unique-key conflict when PK is auto-generated by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24425
- fix(plan): guard paired range index selection by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24437
- fix(plan): support ORDER BY NULL and GROUP BY NULL by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24426
- fix: allow lock tables in transactions by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24421
- fix(plan): align SELECT ... FOR UPDATE with MySQL on derived/agg/subquery by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24427
- fix external parquet hive partition issue by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24468
- fix(plan): support MySQL-compatible chained RENAME TABLE by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24470
- test: add BVT regression for IN subquery regexp misparsing (#23105) by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24464
- fix: zero out event._args before returning events slice to sync.Pool by @Torrent2002 in https://github.com/matrixorigin/matrixone/pull/24471
- feat: add JSON_LENGTH built-in function by @ULookup in https://github.com/matrixorigin/matrixone/pull/24469
- fix: reduce RSS growth from dedupLoad sync.Map retention and flush convoy by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24387
- fix: support LIMIT 0 and improve error messages for NULL/negative LIMIT/OFFSET by @ULookup in https://github.com/matrixorigin/matrixone/pull/24455
- fix: make tasks a non-reserved mysql keyword by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24485
- fix(plan): avoid shuffle for replace capture dedup join by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24502
- fix: guard prepared phy scope shape mismatch by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24512
- fix(plan): support INT + INTERVAL / INT - INTERVAL arithmetic by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24441
- fix: keep disk cache file state consistent on main by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24511
- fix(compile): limit alter copy pipeline flush by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24517
- test: add EXPLAIN ANALYZE alias regression by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24501
- Hardened external Parquet reads by preventing S3 read amplification and fixing LIST/UINT64 conversion edge cases. by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24523
- test: add hive partition fanout BVT coverage by @Ariznawlll in https://github.com/matrixorigin/matrixone/pull/24522
- fix(function): handle math domain errors and mixed string/numeric expressions by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24519
- Add a dict based tokenizer for fulltext. by @fengttt in https://github.com/matrixorigin/matrixone/pull/24297
- Session.GetSessionSysVar returns nil for registered sysvars missing from the per-session map by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24530
- fix(preinsert): expand const columns by row count by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24516
- fix(insert): keep memory pressure flush concurrency fixed by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24533
- fix: allow replace duplicate source keys by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24497
- fix(plan): support nested correlated subqueries by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24537
- fix(parser): support PostgreSQL-style UPDATE ... SET ... FROM ... WHERE by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24536
- fix(dedupjoin): copy aliased build columns in matched==0 fast path by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24564
- fix: free merge group spill aggregate states by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24575
- add main approved reviewer by @heni02 in https://github.com/matrixorigin/matrixone/pull/24595
- feat: add SQL Task execution support by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24539
- fix(main): preserve txn write order after workspace merge by @aptend in https://github.com/matrixorigin/matrixone/pull/24576
- fix(plan): keep index row id for replace single-index path by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24580
- fix: avoid data branch merge channel race by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24583
- fix restore external table handling by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24596
- fix: port minimal RSS cache pressure protection to main by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24615
- fix(replace): handle one new row conflicting with multiple old rows via different unique keys by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24581
- feat: support HLL sketch functions by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24611
- fix: skip stale merge scheduler todo by @aptend in https://github.com/matrixorigin/matrixone/pull/24449
- fix(lockservice): clean stale range waiters by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24632
- test: cover replace and remove stale issue tags by @Ariznawlll in https://github.com/matrixorigin/matrixone/pull/24573
- fix: keep meta cache out of rss pressure eviction (#24648) by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24662
- fix: add backoff to retry loops by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24653
- add rss pressure cache controller by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24665
- fix(ddl): skip stale relations during drop database by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24642
- fix: skip EnsureCleanup on pause/cancel signals to avoid flaky test by @ULookup in https://github.com/matrixorigin/matrixone/pull/24639
- fix(plan): fallback UPDATE generated-column correctness (follow-up [#24536]) by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24600
- [codex] fix DropDatabase SnapshotTS restore race by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24454
- fix(parser): allow reserved keywords as aliases after AS by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24503
- fix(plan): sanitize non-finite plan stats by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24643
- fix: support ACCOUNT clause in RESTORE ... FROM PITR by @Torrent2002 in https://github.com/matrixorigin/matrixone/pull/24591
- fix(plan): allow NULL arguments in GREATEST() and LEAST() by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24628
- fix(plan): preserve decimal scale casts in case and iff by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24572
- logservice: skip zombie check for discovery proxy by @volgariver6 in https://github.com/matrixorigin/matrixone/pull/24474
- fix: return T_blob for FROM_BASE64, UNHEX, AES_DECRYPT to match MySQL wire protocol by @ULookup in https://github.com/matrixorigin/matrixone/pull/24626
- fix(main): sync Name2ColIndex when appending __mo_rowid to index table TableDef by @aptend in https://github.com/matrixorigin/matrixone/pull/24669
- Fix alter copy add primary key precheck by @aptend in https://github.com/matrixorigin/matrixone/pull/24607
- feat: enhance Hive partitioned Parquet external tables by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24674
- fix sql task metadata visibility in multi-cn by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24691
- fix: optimize alter copy and index backfill memory by @aptend in https://github.com/matrixorigin/matrixone/pull/24699
- fix: skip already deleted relations in database delete by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24717
- feat/spill: implement spill support for merge_order by @aunjgr in https://github.com/matrixorigin/matrixone/pull/24656
- fix(fileservice): bound full-file preload admission by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24710
- Revert "fix(fileservice): bound full-file preload admission (#24710)" by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24723
- Revert "fix: skip already deleted relations in database delete (#24717)" by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24725
- fix: restore database delete skip for already deleted relations by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24748
- test: cover SQL task literals and user lock (main) by @Ariznawlll in https://github.com/matrixorigin/matrixone/pull/24636
- cuVS C++ library by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24032
- fix: truncate decimal integer division by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24705
- cherrypick: json functions by @daviszhen in https://github.com/matrixorigin/matrixone/pull/24742
- fix(fileservice): stream full-object disk cache without read wait amplification by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24759
- rewrite phrase SQL by remove JOIN with group by (doc_id, anchor) by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24761
- fix: HLC is ahead of wall clock. iscp failed to update by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24765
- fix(frontend): support human-readable datetime strings in MO_TS table hint by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24629
- fix: close txn operator on wait failure by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24789
- fix(parser): support POSITION(substr IN str) by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24773
- fix: avoid closing running flush object batches by @aptend in https://github.com/matrixorigin/matrixone/pull/24774
- feat: parallelize parquet load by row group by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24803
- fix: fallback UPDATE planner produces nondeterministic project layout by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24794
- fix: fold variable expressions before remote run by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24800
- Refactoring: Replace BloomFilter with combination of CBitmap, CRoaring and CBloomfilter for index pre-filtering by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24787
- fix: align CDC pause visible state by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24798
- fix(test): avoid transaction closure in mustCreatePartitionTable by @Torrent2002 in https://github.com/matrixorigin/matrixone/pull/24624
- fix(frontend): scope table and view grant option checks by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24755
- fix(parser): support array column type syntax by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24528
- fix(spill): stop at max level instead of erroring, fix memory leaks by @aunjgr in https://github.com/matrixorigin/matrixone/pull/24848
- fix(frontend): refresh global sysvars for SHOW GLOBAL VARIABLES by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24844
- fix(frontend): refresh global timeout sysvars by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24608
- test: cover ODKU unique-key conflict with auto increment by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24569
- fix(plan): allow parenthesized uuid default on string columns by @VioletQwQ-0 in https://github.com/matrixorigin/matrixone/pull/24795
- fix: keep large LOAD external scan multi-CN by @aptend in https://github.com/matrixorigin/matrixone/pull/24855
- optimize data branch merge apply execution by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24860
- fix: bound LOAD first-line row size sampling by @aptend in https://github.com/matrixorigin/matrixone/pull/24878
- fix(fileservice): bound full-object cache wait fallback by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24871
- Gis geometry engine by @fengttt in https://github.com/matrixorigin/matrixone/pull/24777
- add bit count by @daviszhen in https://github.com/matrixorigin/matrixone/pull/24763
- fix data branch privilege model by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24875
- add interval by @daviszhen in https://github.com/matrixorigin/matrixone/pull/24793
- fix(sysview): optimize statistics view catalog joins by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24874
- add UUID functions by @daviszhen in https://github.com/matrixorigin/matrixone/pull/24807
- fix(plan): align coalesce decimal scale across branches by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24842
- fix(rscthrottler): avoid double-counting RSS and reserved in S3 write throttler by @aunjgr in https://github.com/matrixorigin/matrixone/pull/24892
- fix: retry QCloud PUT with seekable reader by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24917
- fix: prioritize stalled checkpoint bounded flush by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24901
- optimize workspace delete filtering in local datasource by @aptend in https://github.com/matrixorigin/matrixone/pull/24806
- fix(frontend): align role rule merge semantics by @ouyuanning in https://github.com/matrixorigin/matrixone/pull/24929
- fix parquet datetime load and remote empty marker by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24935
- fix: hnsw run build with single thread to avoid usearch known bug (usearch [#735]) by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24867
- feat: writable external tables (INSERT/LOAD into stage files) by @fengttt in https://github.com/matrixorigin/matrixone/pull/24889
- main: fix data branch create table clone SQL by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24959
- fix(hnsw): force single-thread build on the CDC/sync write path by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24993
- fix: check lock table binds during load by @aptend in https://github.com/matrixorigin/matrixone/pull/24898
- add nameconst by @daviszhen in https://github.com/matrixorigin/matrixone/pull/24887
- fix: avoid pushing join conds with outer scope tags by @aptend in https://github.com/matrixorigin/matrixone/pull/24960
- fix(frontend): keep DDL ownership on matched role by @ouyuanning in https://github.com/matrixorigin/matrixone/pull/24969
- fix: keep file stage external writes on current CN by @aptend in https://github.com/matrixorigin/matrixone/pull/25005
- fix-qcloud-cos-retryable-status by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/24999
- fix: support fulltext index rewrite for joins by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/24884
- fix: report event_scheduler as DISABLED since CREATE EVENT is unsupported by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25020
- fix: honor if exists for missing drop index by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25006
- fix(proxy): clear transfer latch after unsafe attempt by @aptend in https://github.com/matrixorigin/matrixone/pull/24979
- perf(vector,fileservice): coalesce checksummed ReadAt + batch UnionBatch varlena materialization by @cpegeric in https://github.com/matrixorigin/matrixone/pull/25013
- cherry-pick: add protected database by @daviszhen in https://github.com/matrixorigin/matrixone/pull/25027
- add case for data branch(main) by @Ariznawlll in https://github.com/matrixorigin/matrixone/pull/24852
- fix: bound pipeline cleanup waits by @XuPeng-SH in https://github.com/matrixorigin/matrixone/pull/24972
- fix(show7): replace sleep with @wait_expect for statement_info readiness by @aptend in https://github.com/matrixorigin/matrixone/pull/25036
- fix logservice stale replica truncation for main by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/24983
- Vector Index Plugin Framework by @cpegeric in https://github.com/matrixorigin/matrixone/pull/24443
- add issue tag 25046 by @heni02 in https://github.com/matrixorigin/matrixone/pull/25051
- fix(plan): dedup PostgreSQL-style UPDATE ... FROM by target row_id by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25023
- fix(plan): support enum and prefix text indexes (cherry-pick [#24809]) by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25042
- perf(vector): CollectOffsetsByPrefixInFactory walks every block row even when the needle set is tiny by @cpegeric in https://github.com/matrixorigin/matrixone/pull/25049
- fix(dev): make 'make dev-up' work — readable temp compose files + HAKeeper bootstrap by @fengttt in https://github.com/matrixorigin/matrixone/pull/24974
- fix: restore defense-in-depth for CN flush S3 memory throttling by @XuPeng-SH in https://github.com/matrixorigin/matrixone/pull/25064
- add regex by @heni02 in https://github.com/matrixorigin/matrixone/pull/25067
- feat(proxy): add CN health circuit breaker to skip overloaded CNs by @XuPeng-SH in https://github.com/matrixorigin/matrixone/pull/25073
- fix bit_count on arm by @daviszhen in https://github.com/matrixorigin/matrixone/pull/25076
- fix: support compatible CDC show and drop syntax by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25003
- remove tag by @daviszhen in https://github.com/matrixorigin/matrixone/pull/25086
- [main] fix(plan): prevent join order parent cycles by @aptend in https://github.com/matrixorigin/matrixone/pull/25093
- cherry-pick: add locks functions by @daviszhen in https://github.com/matrixorigin/matrixone/pull/25094
- Fix escape string failed to escape '\' character by @cpegeric in https://github.com/matrixorigin/matrixone/pull/25057
- fix: allow account all to manage sys accounts by @aptend in https://github.com/matrixorigin/matrixone/pull/25078
- fix: keep ETL DB conn valid during reconnect by @XuPeng-SH in https://github.com/matrixorigin/matrixone/pull/25139
- fix load data for year columns by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25112
- fix lockservice orphan remote txn validation by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/25150
- fix table clone visibility for repeated alter by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/24987
- fix(frontend): optimize no-pk data branch merge apply on main by @gouhongshen in https://github.com/matrixorigin/matrixone/pull/25069
- feat(parser): add DOUBLE PRECISION as a synonym for DOUBLE (float64) by @fengttt in https://github.com/matrixorigin/matrixone/pull/25109
- cherrypick: fix lower case db name by @daviszhen in https://github.com/matrixorigin/matrixone/pull/25148
- fix(hnsw): restore multi-threaded build; vendor USearch [#735] fix by @cpegeric in https://github.com/matrixorigin/matrixone/pull/25163
- fix(frontend): require DELETE privilege for REPLACE conflicts by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25071
- cherrypick: add lock wait time by @daviszhen in https://github.com/matrixorigin/matrixone/pull/24885
- feat(function): add S2 and H3 geospatial cell functions by @fengttt in https://github.com/matrixorigin/matrixone/pull/25065
- fix(parser): stop column name leaking into CAST(... AS UNSIGNED/SIGNED) type (#25131) by @fengttt in https://github.com/matrixorigin/matrixone/pull/25169
- feat(insert): align ON DUPLICATE KEY UPDATE with MySQL, drop legacy operator by @ck89119 in https://github.com/matrixorigin/matrixone/pull/24973
- fix: cross-CN shuffle join INSERT...SELECT hang on multi-CN cluster (#24919) (cherry-pick [#25158]) by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25184
- Skip CDC DDL test on GitHub Actions by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25170
- fix: avoid reporting dedup load sentinel on cache miss by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25157
- fix(ddl): honor IF NOT EXISTS for CREATE TABLE ... LIKE (#25119) by @fengttt in https://github.com/matrixorigin/matrixone/pull/25172
- fix(function,plan): GREATEST/LEAST numeric promotion (#25145) and ambiguous-column typo (#25146) by @fengttt in https://github.com/matrixorigin/matrixone/pull/25168
- fix(txn): avoid recovery async task panic by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25213
- fix: register remote dispatch receivers early by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25238
- fix(plan): handle NULL left operand in IN predicates by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25236
- fix: DELETE with JOIN deletes all rows instead of only matched rows by @aunjgr in https://github.com/matrixorigin/matrixone/pull/25125
- fix: make CnServerMessageHandler wait observe messageCtx cancellation (partial cherry-pick [#25035]) by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25224
- feat: add mo-dev and mo-bug-triage agent skills by @XuPeng-SH in https://github.com/matrixorigin/matrixone/pull/25270
- fix: improve skills SKILL.md compatibility format by @XuPeng-SH in https://github.com/matrixorigin/matrixone/pull/25271
- fix: preserve text type in conditional string casts (cherry-pick [#25162]) by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25199
- feat(parser): support MySQL REPLACE syntax variants by @ck89119 in https://github.com/matrixorigin/matrixone/pull/25083
- add release 4.1 to mergify by @heni02 in https://github.com/matrixorigin/matrixone/pull/25338
- update golang 1.26.4 version by @heni02 in https://github.com/matrixorigin/matrixone/pull/25354
- [4.1-dev] fix: maintain covering secondary indexes by @XuPeng-SH in https://github.com/matrixorigin/matrixone/pull/25397
- fix: address frontend vet failures by @XuPeng-SH in https://github.com/matrixorigin/matrixone/pull/25401
- [4.1-dev] fix: propagate rewrite hints to INSERT...SELECT inner query by @aunjgr in https://github.com/matrixorigin/matrixone/pull/25358
- Fix zonemap pruning for nullable IN lists by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/25426
- fix(logservice): create on-fly clients outside pool lock by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25440
- fix top max uint64 limit overflow by @jiangxinmeng1 in https://github.com/matrixorigin/matrixone/pull/25435
- fix(fileservice): avoid closing idle upload connections (#25458) by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/25463
- [4.1-dev] Fix nullable IN-list runtime semantics by @LeftHandCold in https://github.com/matrixorigin/matrixone/pull/25468
- fix: validate empty parquet before row-group fanout by @iamlinjunhong in https://github.com/matrixorigin/matrixone/pull/25494
Full Changelog: https://github.com/matrixorigin/matrixone/compare/v4.0.0...v4.1.0