跳到主要内容

StarRocks version 3.5

warning

升级注意事项

  • 从 StarRocks v3.5.0 起,需使用 JDK 17 或更高版本。

    • 如从 v3.4 或更早版本升级集群,需先升级 JDK,并在 FE 配置文件 fe.conf 中移除 JAVA_OPTS 中与 JDK 17 不兼容的参数(如 CMS 和 GC 参数)。推荐直接使用 v3.5 版本的 JAVA_OPTS 默认值。
    • 对于使用 External Catalog 的集群,需要在 BE 配置文件 be.conf 的配置项 JAVA_OPTS 中添加 --add-opens=java.base/java.util=ALL-UNNAMED
    • 对于使用 Java UDF 的集群,需要在 BE 配置文件 be.conf 的配置项 JAVA_OPTS 中添加 --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
    • 此外,自 v3.5.0 起,StarRocks 不再提供特定 JDK 版本的 JVM 配置,所有 JDK 版本统一使用 JAVA_OPTS
  • 建议在将集群升级至 v3.5 之前,先将其升级至 v3.4.10 或更高版本。否则,在灰度升级过程中必须手动禁用低基数优化,具体操作如下:

    SET GLOBAL cbo_enable_low_cardinality_optimize=false;

降级注意事项

  • 升级至 v3.5 后,请勿直接将集群降级至 v3.4.0 ~ v3.4.5,否则会导致元数据不兼容。您必须降级到 v3.4.6 或更高版本以避免出现此问题。
  • 升级至 v3.5.2 后,请勿将集群降级至 v3.5.0 和 v3.5.1,否则会导致 FE Crash。

3.5.12

发布日期:2026 年 1 月 22 日

功能优化

  • 为 BrpcStubCache 新增清理器,用于清理未使用的连接。 #61417
  • 支持对统计信息删除(针对已删除表)以及 Edit Log 写请求进行批量处理。 #67896
  • 在需要加密的情况下,审计日志中保留 SQL 注释。 #63298
  • 在物化视图相关指标中新增 warehouse_name 标签。 #67715
  • 改进了 JDBC 表名和列名的标识符包裹处理。 #67853
  • 为 Iceberg JDBC Catalog 新增 CLIENT_FACTORY 属性。 #67613

问题修复

修复了以下问题:

  • 在混合使用 DATE 和 DATETIME 类型时,可变参数函数返回错误的日期结果。 #67947
  • NormalizePredicateRule 在非确定性表达式上的震荡问题。 #67923
  • Lambda 函数在低基数场景下的问题。 #67843
  • 子字段表达式未收集子字段的问题。 #67850
  • 在子节点统计信息缺失时,RBO Join Reorder 出现 NPE 的问题。 #67693
  • 因 MemTable finalize 失败导致 BE 崩溃的问题。 #67787
  • 在动态 overwrite 场景下,FE 重启后临时分区未被清理的问题。 #67629
  • Compaction 的 I/O 统计信息不准确的问题。 #67524
  • 复制事务过程中,跨集群物理分区比较逻辑不正确的问题。 #67616
  • SQL Server 和 Oracle 标识符符号处理存在的问题。 #67965
  • 由于配置未正确传递,Iceberg 元数据表查询中出现 NPE 的问题。 #67151
  • 空 Parquet 或 ORC 文件场景下,files() schema 检测存在的问题。 #67762
  • 在 Hive 表上执行 UNION ALL 时,Profile 中的指标值不准确的问题。 #67912
  • FE 查询场景下,缺乏通过 Arrow Flight 代理获取数据的支持。 #67794

3.5.11

发布日期:2026 年 1 月 5 日

功能改进

  • 支持在节点不可访问的情况下通过 Arrow Flight 拉取数据。#66348
  • 在 SIGTERM 处理器中记录终止原因(包括触发的进程信息)。#66737
  • 新增 FE 配置项 enable_statistic_collect_on_update,用于控制 UPDATE 语句是否可以触发自动统计信息收集。#66794
  • 支持配置 networkaddress.cache.ttl#66723
  • 改进 “no rows imported” 错误提示信息。#66624 #66535
  • 针对大分区表,通过延迟计算优化 deltaRows#66381
  • 优化物化视图重写性能。#66623
  • 在 Shared-Data 集群中支持单 Tablet 的 ResultSink 优化。#66517
  • 默认启用 rewrite_simple_agg_to_meta_scan#64698
  • 支持 GROUP BY 表达式下推以及基于 GROUP BY 的物化视图重写。#66507
  • 新增重载的 newMessage 方法,以改进物化视图相关日志。#66367

问题修复

已修复以下问题:

  • 当输入 Rowset 不存在时,Publish Compaction 可能发生崩溃。#67154
  • 在查询包含大量列的表时,反复调用 update_segment_cache_size 导致 CPU 开销过大和锁竞争严重。#66714
  • MulticastSinkOperator 卡在 OUTPUT_FULL 状态。#67153
  • Skew Join Hint 中出现 “column not found”。#66929
  • Tablet 数量持续增长,且 pending 与 running tablet 之和不等于总 Tablet 数。#66718
  • Leader 启动期间构建的 Compaction Map 中的事务无法被 CompactionScheduler 访问,且无法被清理。#66533
  • Delta Lake 表刷新不生效。#67156
  • 在对非分区 Iceberg 表使用 DATE 谓词查询时,CN 发生崩溃。#66864
  • 提交多个 SQL 语句时,Profile 中语句无法正确显示。#67097
  • 由于 Meta Reader 不支持读取 Delta 列组文件,导致统计信息收集时缺失字典信息。#66995
  • Java UDAF 中潜在的 Java Heap OOM 问题。#67025
  • 在未指定 PARTITION BY 和 ORDER BY 的情况下,Ranking Window 优化逻辑错误导致 BE 崩溃。#67081
  • 时区缓存未命中时日志级别不正确。#66817
  • 在合并 Runtime Filter 时,can_use_bf 校验逻辑错误导致崩溃和结果错误。#67021
  • Runtime Bitset Filter 与其他 OR 谓词一起下推时。#66996
  • 合入 lz4 的关键补丁修复。#67053
  • AsyncTaskQueue 死锁问题。#66791
  • ObjectColumn 中的缓存不一致。#66957
  • RewriteUnnestBitmapRule 导致输出列类型错误。#66855
  • Delta Writer 中,在 FINISH 任务之后仍存在 WRITE 或 FLUSH 任务时,可能导致数据竞争和数据丢失。#66943
  • 重新打开已中止的导入通道导致 Load Channel 无效并产生误导性内部错误。#66793
  • Arrow Flight SQL 的相关问题。#65889
  • 使用 MetaScan 查询已重命名列时。#66819
  • 在关闭倾斜消除的分区级可溢出聚合中,Flush Chunk 前未移除 Hash 列。#66839
  • BOOLEAN 类型以字符串字面量存储时,默认值处理不正确。#66818
  • decimal2decimal Cast 直接返回输入列作为结果的异常行为。#66773
  • Schema Change 过程中 Query Planning 阶段出现 NPE。#66811
  • LocalTabletsChannel 与 LakeTabletsChannel 之间的死锁问题。#66748
  • 新版 FE 中 publish_version 日志显示空的 txn_ids#66732
  • FE 配置项 statistic_collect_query_timeout 行为不正确。#66363
  • UPDATE 语句不支持统计信息收集。#66443
  • 低基数场景下 CASE 重写相关错误。#66724
  • 当列列表为空时,统计信息查询失败。#66138
  • 通过 Hint 切换 Warehouse 时,使用量与记录不一致。#66677
  • ANALYZE TABLE 语句缺少 ExecTimeout。#66361
  • array_map 在常量一元表达式场景下返回错误结果。#66514
  • FE 重启后外键约束丢失。#66474
  • 在空表上执行 max(not null string) 时抛出 std::length_error#66554
  • 主键索引 Compaction 与 Apply 之间的并发问题。#66282
  • EXPLAIN <query> 行为不正确。#66542
  • 将 DECIMAL128 写入 Iceberg 表列时。#66071
  • JSON → CHAR/VARCHAR 转换时,当目标长度等于最小长度时的长度校验问题。#66628
  • 表达式子节点数量错误。#66511

3.5.10

发布日期:2025 年 12 月 15 日

功能改进

  • 支持在 BE 崩溃日志中输出执行计划节点 ID,加快问题算子定位速度。 #66454
  • 优化了 information_schema 中系统视图的扫描,降低系统开销。 #66200
  • 新增两个直方图指标(slow_lock_held_time_msslow_lock_wait_time_ms),以增强对慢锁场景的可观测性,并区分长时间持有锁与高锁竞争。 #66027
  • 在 tablet 上报和克隆流程中,将副本锁的粒度从数据库级别调整为表级别,减少锁竞争并提升调度效率。 #61939
  • 避免在 BE 存储层输出不必要的列,并将谓词计算下推至 BE 存储层执行。 #60462
  • 在后台线程中下发 scan range 时,提升了查询 Profile 的统计准确性。 #62223
  • 优化了额外任务下发时的 Profile 统计逻辑,避免 CPU 时间被重复计数。 #62186
  • 当引用的分区不存在时,提供更详细的错误信息,便于问题诊断。 #65674
  • 增强了采样型基数估计在边界场景下的健壮性,提升行数估计的准确性。 #65599
  • 在加载统计信息时增加分区过滤,防止 INSERT OVERWRITE 读取过期的分区统计信息。 #65578
  • 将 pipeline CPU execution_time 指标拆分为查询和导入两类时间序列,提升按工作负载类型的可观测性。 #65535
  • 支持在表级别配置 enable_statistic_collect_on_first_load,以更细粒度地控制首次导入时的统计信息收集。 #65463
  • 将依赖 S3 的单元测试从 PocoClientTest 重命名为更明确的 S3 相关名称,以准确反映其依赖关系和用途。 #65524

Bug 修复

修复了以下问题:

  • 在使用不兼容 JDK 启动 StarRocks 时,libhdfs 可能发生崩溃。 #65882
  • PartitionColumnMinMaxRewriteRule 可能导致查询结果错误。 #66356
  • 通过 AST key 解析物化视图时,因物化视图元数据未刷新而导致的重写问题。 #66472
  • trim 函数在处理特定 Unicode 空白字符时可能崩溃或返回错误结果。 #66428, #66477
  • 仍然引用已删除 Warehouse 的导入元数据和 SQL 执行失败问题。 #66436
  • 分组执行 Join 与窗口函数组合使用时可能产生错误结果。 #66441
  • resetDecommStatForSingleReplicaTabletUnlocked 中可能出现 FE 空指针异常。 #66034
  • 在存算分离集群中,LakeDataSource 缺失 Join 运行时过滤器下推优化。 #66354
  • 运行时过滤器传输相关参数(如超时、HTTP RPC 限制等)未正确下发至接收端,导致参数不一致。 #66393
  • 当分区值已存在时,自动创建分区失败。 #66167
  • 当谓词选择性较高时,审计日志中的扫描统计信息不准确。 #66280
  • 由于将非确定性函数下推到算子下方,导致查询结果错误。 #66323
  • CASE WHEN 表达式可能导致表达式数量指数级增长。 #66324
  • 同一查询中多次引用同一表但使用不同分区谓词时,物化视图补偿存在问题。 #66369
  • 在子进程中使用 fork 可能导致 BE 无响应。 #66334
  • 修复了 CVE-2025-66566 和 CVE-2025-12183 安全漏洞。 #66453, #66362
  • 嵌套 CTE 复用导致的错误。 #65800
  • 缺少对冲突的 schema change 子句进行校验而引发的问题。 #66208
  • Rowset 提交失败时,Rowset GC 行为不正确。 #66301
  • Pipeline 计数递减过程中可能发生 use-after-free。 #65940
  • Stream Load 场景下,information_schema.loads 中的 Warehouse 字段为空。 #66202
  • 当被引用视图与其基表同名时,物化视图创建异常。 #66274
  • 全局字典在某些场景下未能正确更新。 #66194
  • 从 Follower 节点转发的查询,其 Profile 日志记录不正确。 #64395
  • 在缓存 SELECT 结果并重排 schema 时可能导致 BE 崩溃。 #65850
  • 使用表达式删除分区时,影子分区被错误删除。 #66171
  • 当同一 tablet 存在 CLONE 任务时,仍然执行 DROP 任务。 #65780
  • RocksDB 日志文件参数配置不当导致稳定性和可观测性问题。 #66166
  • 物化视图补偿逻辑错误,可能产生 NULL 结果。 #66216
  • 即使 BE 收到 SIGSEGV 信号,仍被错误地上报为存活状态。 #66212
  • Iceberg 扫描相关的缺陷。 #65658
  • Iceberg 视图 SQL 测试用例的回归覆盖和稳定性问题。 #66126
  • 由于 set_collector 被重复调用而引发的异常行为。 #66199
  • 在列模式部分更新与条件更新同时使用时,可能导致导入失败。 #66139
  • 并发事务下临时分区值冲突。 #66025
  • Iceberg 表缓存存在缺陷:即使 cache.size() == 0,Guava LocalCache 仍可能保留过期条目,导致刷新无效并返回过期表数据。 #65917
  • LargeInPredicateException 中的格式化占位符错误,导致错误信息中 LargeInPredicate 实际数量显示不正确。 #66152
  • 当 connectContext 为空时,ConnectScheduler 的超时检查器可能抛出 NullPointerException。 #66136
  • 线程池任务抛出的异常未被正确处理,可能导致进程崩溃。 #66114
  • 在某些执行计划中下推 DISTINCT LIMIT 可能导致数据丢失。 #66109
  • multi_distinct_count 在底层 HashSet 转换为两级 HashSet 后未更新 distinct_size,可能导致去重结果错误。 #65916
  • Exec Group 提交下一个 Driver 时存在竞态条件,可能触发 Check failed: !driver->is_in_blocked() 并导致 BE 进程退出。 #66099
  • 并发执行 ALTER TABLE ADD COLUMN(带默认值)和 INSERT 时,由于新列默认表达式类型不匹配导致 INSERT 失败。 #65968
  • 当 SparkSQL 提前退出并关闭 RecordBatchQueue 后,MemoryScratchSinkOperator 可能一直处于 pending_finish 状态,导致 Pipeline 挂起。 #66041
  • 读取包含空 Row Group 的 Parquet 文件时可能发生 Core Dump。 #65928
  • 在高 DOP 场景下,由于事件调度器就绪检查逻辑复杂,可能发生递归调用并引发栈溢出。 #66016
  • 当 Iceberg 基表包含过期快照时,异步物化视图刷新会跳过更新。 #65969
  • 优化器仅依赖 hashCode 区分谓词差异,导致谓词复用和重写存在潜在问题。 #65999
  • 多级分区基表的异步物化视图刷新过程中,仅检查父分区元数据,导致子分区更新被跳过。 #65596
  • 统计信息收集问题:对空结果集执行 AVG(ARRAY_LENGTH(...)) 可能返回 NULL。 #65788
  • BE 和 FE 在增量更新运行时 Profile 计数器时,min/max 值未正确更新或清理。 #65869
  • 创建集群快照时,获取 image journal ID 的逻辑不正确,可能导致快照使用错误的日志位置。 #65970
  • 由于文件清理错误处理中的状态检查逻辑不正确,清理失败时结果被错误上报。 #65709
  • DictMappingOperator 中 isVariable() 在某些执行计划下可能进入死循环。 #65743
  • 由于未将 ConnectContext 传递到 scan range 下发线程,导致审计日志和 Profile 数据缺失。 #63544
  • 存储引擎停止时,本地主键索引管理器可能发生 use-after-free。 #65534
  • 动态覆盖模式下的 INSERT OVERWRITE 存在统计信息收集问题。 #65657
  • DiskAndTabletLoadReBalancer 中使用粗粒度锁引发的并发问题。 #65557
  • 由于关键锁缺乏慢锁检测,慢锁无法被正确识别和上报。 #65559
  • 目标数据库已被删除时,回放 upsert 事务状态可能触发 NullPointerException。 #65595
  • INSERT OVERWRITE 触发统计信息收集后,未清理旧的分区统计信息,导致使用了过期统计数据。 #65586
  • 分区 ID 分配存在数据竞争,在并发场景下可能导致 ID 冲突。 #65608
  • 获取初始 Tablet 元数据时缺失部分 Tablet ID。 #65550
  • 审计日志和 Profile 中 PREPARE / EXECUTE 语句的记录信息不正确。 #65448
  • 非线程安全的 has_output 函数被多个线程调用,可能导致崩溃。 #65514
  • 缺少 memtable_finalize_task_total 计数器指标,导致 MemTable finalize 任务无法被正确跟踪。 #65548
  • Arrow Flight 中查询 ID 冲突,导致多个查询未能共享同一个查询 ID。 #65558
  • TabletChecker.doCheck() 与其他操作之间存在锁冲突。 #65237
  • 存算分离与存算一体数据集群之间的扫描行为不一致,导致查询语义差异。 #61100

3.5.9

发布日期:2025 年 11 月 26 日

功能优化

  • 在 FE 中新增事务延迟指标,用于观察事务各阶段的耗时。#64948
  • 支持覆盖写入 S3 上的非分区 Hive 表,简化数据湖场景下的整表重写。#65340
  • 引入 CacheOptions,以提供对 Tablet 元数据缓存的更细粒度控制。#65222
  • 支持对 INSERT OVERWRITE 采集样本统计,以确保统计信息与最新数据一致。#65363
  • 优化 INSERT OVERWRITE 后的统计信息收集策略,避免因 Tablet 异步上报导致统计信息缺失或不正确。#65327
  • 对 INSERT OVERWRITE 或物化视图刷新操作中被删除或替换的分区引入保留期,在回收站中保留一段时间以提升可恢复性。#64779

问题修复

以下问题已修复:

  • LocalMetastore.truncateTable() 相关的锁竞争和并发问题。#65191
  • 与 TabletChecker 相关的锁竞争及副本检查性能问题。#65312
  • 通过 HTTP SQL 切换用户时日志记录错误。#65371
  • 由于 DelVec CRC32 升级兼容性问题导致的校验失败。#65442
  • 因 RocksDB 迭代器超时导致的 Tablet 元数据加载失败。#65146
  • 当 JSON 超路径 $ 或所有路径被跳过导致内部 flat_path 字符串为空时,调用 substr 会抛异常并导致 BE 崩溃。#65260
  • Fragment 执行中的 PREPARED 标记未正确设置。#65423
  • 由于重复的 Load Profile 计数导致 Write 和 Flush 指标不准确。#65252
  • 当多个 HTTP 请求复用同一 TCP 连接时,如果在 ExecuteSQL 请求后到达一个非 ExecuteSQL 请求,会导致通道关闭时 HttpConnectContext 无法注销,从而引发 HTTP Context 泄漏。#65203
  • MySQL 8.0 架构探查错误(通过添加会话变量 default_authentication_pluginauthentication_policy 修复)。#65330
  • 在分区重写后创建的临时分区上多余的统计收集导致 SHOW ANALYZE STATUS 报错。#65298
  • Event Scheduler 中 Global Runtime Filter 的竞争问题。#65200
  • 由于 Data Cache 的最小磁盘大小限制过大,导致 Data Cache 被过度禁用。#64909
  • gold Linker 自动回退相关的 aarch64 构建问题。#65156

3.5.8

发布日期:2025 年 11 月 10 日

功能优化

  • 将 Arrow 升级至 19.0.1,以支持 Parquet 旧版 LIST 编码格式,从而兼容嵌套和复杂文件。 #64238
  • FILES() 支持 Parquet 旧版 LIST 编码。 #64160
  • 根据会话变量和插入列数量自动确定 Partial Update 模式。 #62091
  • 在表函数之上的分析算子中应用低基数优化。 #63378
  • finishTransaction 新增可配置的表锁超时设置,以避免阻塞。 #63981
  • 存算分离集群支持获取表级扫描指标。 #62832
  • 窗口函数 LEAD/LAG/FIRST_VALUE/LAST_VALUE 现在支持 ARRAY 类型参数。 #63547
  • 支持多种数组函数的常量折叠,以提升谓词下推和 Join 简化性能。 #63692
  • 支持批量 API 优化 SHOW PROC /backends/{id} 中获取指定节点的 tabletNum。新增 FE 配置项 enable_collect_tablet_num_in_show_proc_backend_disk_path(默认值:true)。 #64013
  • 确保 INSERT ... SELECT 在执行前刷新外部表,以读取最新元数据。 #64026
  • 在表函数、NL Join Probe、Hash Join Probe 中增加 capacity_limit_reached 检查,以避免构造超限列。 #64009
  • 新增 FE 配置项 collect_stats_io_tasks_per_connector_operator(默认值:4),用于设置收集外部表统计信息的最大任务数。 #64016
  • 采样收集的默认分区大小从 1000 调整为 300。 #64022
  • 锁表槽数量增加至 256,并在慢锁日志中增加 rid 字段。 #63945
  • 提升 Gson 反序列化在处理旧版数据时的健壮性。 #63555
  • 缩小 FILES() 模式下推的元数据锁范围,以降低锁竞争并减少计划延迟。 #63796
  • 新增 Task Run 执行超时检查机制,通过引入 FE 配置项 task_runs_timeout_second,并优化超时任务的取消逻辑。 #63842
  • 确保 REFRESH MATERIALIZED VIEW ... FORCE 始终刷新目标分区,即使在不一致或损坏的情况下。 #63844

问题修复

修复了以下问题:

  • 解析 ClickHouse 的 Nullable (Decimal) 类型时出现异常。 #64195
  • Tablet 迁移与主键索引查找的并发问题。 #64164
  • 物化视图刷新缺少 FINISHED 状态。 #64191
  • 存算分离集群中 Schema Change Publish 无法重试。 #64093
  • 数据湖中主键表的行数统计错误。 #64007
  • 存算分离集群中 Tablet 创建超时时无法返回节点信息。 #63963
  • Lake Data Cache 损坏后无法清理。 #63182
  • 带 IGNORE NULLS 标志的窗口函数无法与不带该标志的函数合并。 #63958
  • 如果 Compaction 任务在 FE 重启前中止,则重启后无法重新调度。 #63881
  • FE 频繁重启时任务调度失败。 #63966
  • GCS 错误码处理问题。 #64066
  • StarMgr gRPC 执行器的不稳定问题。 #63828
  • 创建独占 Worker Group 时的死锁问题。 #63893
  • Iceberg 表缓存未正确失效。 #63971
  • 存算分离集群中排序聚合结果错误。 #63849
  • PartitionedSpillerWriter::_remove_partition 中的 ASAN 错误。 #63903
  • 获取 Morsel 队列分片失败时 BE 崩溃。 #62753
  • 物化视图改写中聚合下推类型转换错误。 #63875
  • FE 中删除过期导入作业时报 NPE。 #63820
  • 删除分区时的 Partitioned Spill 崩溃问题。 #63825
  • 某些计划下物化视图改写抛出 IllegalStateException#63655
  • 创建分区物化视图时发生 NPE。 #63830

3.5.7

发布日期:2025年10月21日

功能优化

  • 通过在内存竞争严重的情况下引入重试回退机制,提升了 Scan Operator 的内存统计准确性。#63788
  • 通过利用现有的分区分布,优化了物化视图桶的推理,防止了过多桶的创建。#63367
  • 修改了 Iceberg 表缓存机制,提高了一致性并减少了频繁元数据更新时的缓存失效风险。#63388
  • QueryDetailAuditEvent 中增加了 querySource 字段,以便更好地追踪查询来源,跨 API 和调度器。#63480
  • 通过在 MemTable 写入时检测到 Duplicate Key 时打印详细的上下文,增强了持久化索引诊断功能。#63560
  • 通过优化锁粒度和并发场景中的顺序,减少了物化视图操作中的锁竞争。#63481

问题修复

修复了以下问题:

  • 由于类型不匹配导致的物化视图重写失败。#63659
  • regexp_extract_all 行为不正确,且不支持 pos=0#63626
  • 由于对带有复杂函数的 CASE WHEN 简化不当,导致扫描性能下降。#63732
  • 在部分更新时,从列模式切换到行模式时,DCG 数据读取不正确。#61529
  • 初始化 ExceptionStackContext 时可能发生死锁。#63776
  • ARM 架构机器上 Parquet 数值转换崩溃。#63294
  • 聚合中间类型使用 ARRAY<NULL_TYPE> 引发的问题。#63371
  • 在边缘情况下(例如,INT128_MIN)将 LARGEINT 转换为 DECIMAL128 时,溢出检测不正确导致的稳定性问题。#63559
  • 无法感知 LZ4 压缩和解压缩错误。#63629
  • 查询由 FROM_UNIXTIME 分区的表时,出现 ClassCastException#63684
  • 当唯一有效的源副本被标记为 DECOMMISSION 时,平衡触发迁移后的分区无法修复。#62942
  • 使用 PREPARE 语句时,Profile 丢失 SQL 语句和 Planner Trace。#63519
  • extract_numberextract_boolextract_string函数不具备异常安全性。#63575
  • 关闭的分区无法正确进行垃圾回收。#63595
  • PREPARE/EXECUTE语句的返回结果在 Profile 中显示为omit#62988
  • date_trunc 的分区裁剪与组合谓词错误地产生了 EMPTYSET。#63464
  • NullableColumn 中的 CHECK 导致 Release Build 发生崩溃。#63553

3.5.6

发布日期: 2025年9月22日

功能优化

  • 当被 Decommission 的 BE 的所有 Tablet 都在回收站中时,会强制删除该 BE,以避免 Decommission 过程被这些 Tablet 阻塞。 #62781
  • 当 Vacuum 成功时会更新 Vacuum 指标。 #62540
  • 在 Fragment 实例执行状态报告中新增线程池指标,包括活动线程数、队列数量和运行线程数。 #63067
  • 在存算分离集群中支持 S3 路径风格访问,以提升与 MinIO 等 S3 兼容存储系统的兼容性。可在创建存储卷时将 aws.s3.enable_path_style_access 设置为 true 以启用。 #62591
  • 支持通过 ALTER TABLE <table_name> AUTO_INCREMENT = 10000; 重置 AUTO_INCREMENT 值的起始点。 #62767
  • 在 Group Provider 中支持使用 Distinguished Name (DN) 进行组匹配,以改善 LDAP/Microsoft Active Directory 环境下的用户组方案。 #62711
  • 支持 Azure Data Lake Storage Gen2 的 Azure Workload Identity 认证。 #62754
  • information_schema.loads 视图中新增事务错误消息,以便于故障诊断。 #61364
  • 支持在包含复杂 CASE WHEN 表达式的 Scan 谓词中复用公共表达式,以减少重复计算。 #62779
  • 使用 REFRESH 权限(而不是 ALTER 权限)来执行 REFRESH 语句。 #62636
  • 默认禁用 Lake 表的低基数优化,以避免潜在问题。 #62586
  • 默认启用存算分离集群中不同 Worker 之间的 Tablet 负载均衡。 #62661
  • 支持在外连接 WHERE 谓词中复用表达式,以减少重复计算。 #62139
  • 在 FE 中新增 Clone 指标。 #62421
  • 在 BE 中新增 Clone 指标。 #62479
  • 新增 FE 配置项 enable_statistic_cache_refresh_after_write,默认禁用统计缓存的延迟刷新。 #62518
  • 在 SUBMIT TASK 中屏蔽凭据信息,以提高安全性。 #62311
  • Trino 方言下的 json_extract 返回 JSON 类型。 #59718
  • null_or_empty 中支持 ARRAY 类型。 #62207
  • 调整 Iceberg 清单缓存的大小限制。 #61966
  • 为 Hive 新增远程文件缓存限制。 #62288

问题修复

修复了以下问题:

  • 由于负超时值导致时间戳比较错误,次副本会无限期挂起。 #62805
  • 当 TransactionState 为 REPLICATION 时,PublishTask 可能被阻塞。 #61664
  • 在物化视图刷新过程中,Hive 表被删除并重新创建时的修复机制错误。 #63072
  • 物化视图聚合下推改写后生成了错误的执行计划。 #63060
  • PlanTuningGuide 在查询配置文件中生成无法识别的字符串(null explainString),导致 ANALYZE PROFILE 失败。 #63024
  • hour_from_unixtime 的返回类型不正确,CAST 的改写规则错误。 #63006
  • Iceberg 清单缓存中在数据竞争情况下出现 NPE。 #63043
  • 存算分离集群缺乏物化视图的 Colocation 支持。 #62941
  • Scan Range 部署期间 Iceberg 表扫描异常。 #62994
  • 基于视图的改写生成了错误的执行计划。 #62918
  • Compute Node 未在退出时正常关闭,导致错误和任务中断。 #62916
  • Stream Load 执行状态更新时出现 NPE。 #62921
  • 当列名与 PARTITION BY 子句中的名称大小写不一致时,统计信息出错。 #62953
  • LEAST 函数用作谓词时返回错误结果。 #62826
  • 在表裁剪边界 CTEConsumer 之上的 ProjectOperator 无效。 #62914
  • Clone 后副本处理冗余。 #62542
  • 无法收集 Stream Load 配置文件。 #62802
  • 由于错误的 BE 选择导致磁盘再平衡无效。 #62776
  • 当缺少 tablet_id 导致 delta writer 为 null 时,LocalTabletsChannel 中可能发生 NPE 崩溃。 #62861
  • KILL ANALYZE 不生效。 #62842
  • 当 MCV 值包含单引号时,直方图统计中的 SQL 语法错误。 #62853
  • Prometheus 指标输出格式错误。 #62742
  • 在删除数据库后查询 information_schema.analyze_status 时出现 NPE。 #62796
  • CVE-2025-58056。 #62801
  • 执行 SHOW CREATE ROUTINE LOAD 时,如果未指定数据库,会被视为 null,从而返回错误结果。 #62745
  • files() 中错误跳过 CSV 头部导致数据丢失。 #62719
  • 回放批量事务 upsert 时发生 NPE。 #62715
  • 在存算一体集群中优雅关闭期间,Publish 被错误地报告为成功。 #62417
  • 由于空指针导致异步 delta writer 崩溃。 #62626
  • 在恢复任务失败后,由于未清除物化视图版本映射,跳过物化视图刷新。 #62634
  • 物化视图分析器中区分大小写的分区列校验引发问题。 #62598
  • 语法错误的语句生成重复的 ID。 #62258
  • CancelableAnalyzeTask 中冗余状态赋值覆盖了 StatisticsExecutor 状态。 #62538
  • 统计信息收集产生错误的错误消息。 #62533
  • 外部用户的默认最大连接数不足,导致过早限流。 #62523
  • 物化视图备份和恢复操作中可能出现 NPE。 #62514
  • http_workers_num 指标不正确。 #62457
  • 构建运行时过滤器时未能找到对应的执行组。 #62465
  • 在 Scan 节点中,由于简化了包含复杂函数的 CASE WHEN,导致结果冗余。 #62505
  • gmtime 线程不安全。 #60483
  • 获取 Hive 分区时对转义字符串处理错误。 #59032

3.5.5

发布日期: 2025 年 9 月 5 日

功能优化

  • 新增系统变量 enable_drop_table_check_mv_dependency(默认值:false)。设置为 true 后,若被删除的对象被下游物化视图所依赖,系统将阻止执行该 DROP TABLE / DROP VIEW / DROP MATERIALIZED VIEW 操作。错误信息会列出依赖的物化视图,并提示查看 sys.object_dependencies 视图获取详细信息。#61584
  • 日志新增构建的 Linux 发行版与 CPU 架构信息,便于问题复现与排障。相关日志格式为 ... build <hash> distro <id> arch <arch>#62017
  • 通过在每个 Tablet 缓存持久化索引与增量列组文件大小,替代按需目录扫描,加速 BE 的 Tablet 状态上报并降低高 I/O 场景延迟。 #61901
  • 将 FE 与 BE 日志中多处高频 INFO 日志降级为 VLOG,并对任务提交日志做聚合,显著减少存储相关冗余日志与高负载下的日志量。#62121
  • 通过 information_schema 数据库查询 External Catalog 元数据时,通过将表过滤下推到调用 getTable 之前,加速此类查询,避免逐表 RPC,并提升性能。#62404

问题修复

修复了以下问题:

  • 在 Plan 阶段获取分区级列统计信息时,因缺失而产生 NullPointerException 的问题。#61935
  • Parquet 写出在 NULL 数组非零大小场景下的问题,并纠正 SPLIT(NULL, …) 行为保持输出为 NULL,避免数据损坏与运行时错误。#61999
  • 创建使用 CASE WHEN 表达式的物化视图时,因 VARCHAR 类型返回不兼容导致的失败(修复后,系统确保刷新前后一致性,新增 FE 配置 transform_type_prefer_string_for_varchar 以优先用 STRING,避免长度不匹配)。#61996
  • enable_rbo_table_prunefalse 时,在表裁剪时系统无法在 memo 之外计算嵌套 CTE 统计信息的问题。#62070
  • Audit Log 中,INSERT INTO SELECT 语句的 Scan Rows 结果不准确。#61381
  • 初始化阶段出现 ExceptionInInitializerError/NullPointerException 问题,导致启用 Query Queue v2 时 FE 重启失败。 #62161
  • BE 在 LakePersistentIndex 初始化失败时因清理 _memtable 而崩溃。#62279
  • 物化视图刷新时创建者的所有角色未被激活导致的权限问题(修复后,新增 FE 配置 mv_use_creator_based_authorization,设置为 false 时系统以 root 身份刷新物化视图,用于适配 LDAP 验证方式的集群)。#62396
  • 因 List 分区表名仅大小写不同而导致的物化视图刷新失败(修复后,对分区名实施大小写不敏感的唯一性校验,与 OLAP 表语义一致)。#62389

3.5.4

发布日期: 2025年8月22日

功能优化

  • 增加日志以明确 Tablet 无法修复的原因。 #61959
  • 优化日志中的 DROP PARTITION 信息。 #61787
  • 为统计信息未知的表分配一个较大但可配置的行数,用于统计估算。 #61332
  • 增加基于标签位置的均衡统计。 #61905
  • 增加 Colocate Group 均衡统计以提升集群监控能力。 #61736
  • 当健康副本数超过默认副本数时,跳过 Publish 等待阶段。 #61820
  • 在 Tablet 报告中加入 Tablet 信息的收集时间。 #61643
  • 支持写入带标签的 Starlet 文件。 #61605
  • 支持通过 SHOW PROC 查看集群均衡统计。 #61578
  • 升级 librdkafka 至 2.11.0 以支持 Kafka 4.0,并移除废弃配置。 #61698
  • 在 Stream Load 事务接口中新增 prepared_timeout 配置。 #61539
  • 升级 StarOS 至 v3.5-rc3。 #61685

问题修复

修复了以下问题:

  • 随机分布表的 Dict 版本错误。 #61933
  • 在 Context Condition 中的 Query Context 错误。 #61929
  • ALTER 操作中因 Shadow Tablet 的同步 Publish 导致 Publish 失败。 #61887
  • 修复 CVE-2025-55163 漏洞。 #62041
  • 从 Apache Kafka 实时导入数据时发生内存泄漏。 #61698
  • Lake Persistent Index 中 Rebuild 文件数量统计错误。 #61859
  • 在生成表达式列上收集统计信息导致跨库查询失败。 #61829
  • Query Cache 在存算一体集群中不一致,导致结果不一致。 #61783
  • CatalogRecycleBin 保留已删除分区信息导致内存占用过高。 #61582
  • SQL Server JDBC 连接在超时超过 65,535 毫秒时失败。 #61719
  • 安全集成未能加密密码,导致敏感信息泄露。 #60666
  • Iceberg 分区列上的 MIN()MAX() 异常返回 NULL。 #61858
  • 含不可下推子字段的 Join 谓词被错误改写。 #61868
  • 取消 QueryContext 可能导致 use-after-free。 #61897
  • CBO 表裁剪逻辑错误忽略其他谓词。 #61881
  • COLUMN_UPSERT_MODE 部分更新将自增列覆盖为 0。 #61341
  • JDBC TIME 类型转换使用错误的时区偏移,导致时间值错误。 #61783
  • Routine Load 作业未序列化 max_filter_ratio#61755
  • Stream Load 的 now(precision) 函数存在精度参数丢失。 #61721
  • 取消查询可能导致“query id not found”错误。 #61667
  • LDAP 认证在查询过程中可能漏报 PartialResultException 导致查询结果不完整。 #60667
  • 查询条件包含 DATETIME 时,Paimon Timestamp 的时区转换错误。 #60473

3.5.3

发布日期: 2025 年 8 月 11 日

功能优化

  • Lake Compaction 增加 Segment 写入耗时统计信息。#60891
  • 禁用 Data Cache 写入的 inline 模式以避免性能下降。#60530
  • Iceberg 元数据扫描支持共享文件 I/O。#61012
  • 支持终止所有 PENDING 状态的 ANALYZE 任务。#61118
  • CTE 节点过多时强制复用以避免优化耗时过长。#60983
  • 集群均衡结果中新增 BALANCE 类型。#61081
  • 优化含外部表的物化视图改写。#61037
  • 系统变量 enable_materialized_view_agg_pushdown_rewrite 默认值修改为 true,即默认为物化视图查询改写启用聚合函数下推。 #60976
  • 优化分区统计锁竞争。#61041

问题修复

修复了以下问题:

  • 列裁剪后 Chunk 列大小不一致。#61271
  • 非异步执行分区统计加载可能造成死锁。#61300
  • array_map 处理常量数组列时崩溃。#61309
  • 将自增列设为 NULL 时,系统错误拒绝同一 Chunk 内的有效数据。#61255
  • JDBC 实际连接数可能超过 jdbc_connection_pool_size 限制。#61038
  • FQDN 模式下未使用 IP 地址作为缓存键。#61203
  • 数组比较过程中数组列克隆错误。#61036
  • 部署序列化线程池阻塞导致查询性能下降。#61150
  • 心跳重试计数器重置后 OK 响应未同步。#61249
  • hour_from_unixtime 函数结果错误。#61206
  • ALTER TABLE 任务与分区创建冲突。#60890
  • 从 v3.3 升级至 v3.4 或更新版本后缓存不生效。#60973
  • 向量索引指标 hit_count 未设置。#61102
  • Stream Load 事务导入无法找到协调节点。#60154
  • BE 在加载 OOM 分区时崩溃。#60778
  • 手动创建的分区在执行 INSERT OVERWRITE 时失败。#60858
  • 当分区的值不同但名称在不区分大小写的情况下相同时,分区创建失败。 #60909
  • 不支持 PostgreSQL UUID 类型。#61021
  • 通过 FILES() 导入 Parquet 数据时列名大小写敏感的问题。#61059

3.5.2

发布日期: 2025 年 7 月 18 日

功能优化

  • 为数组列实现了 NDV 统计信息采集,以提高查询计划的准确性。#60623
  • 禁止存算分离集群中 Colocate 表的副本均衡以及 Tablet 调度,减少无用的日志输出。#60737
  • 优化 Catalog 访问机制,在 FE 启动时,系统默延迟异步访问外部数据源,避免外部服务不可用导致 FE 启动卡死。 #60614
  • 新增 Session 变量 enable_predicate_expr_reuse 以控制是否开启谓词下推。 #60603
  • 支持获取 Kafka Partition 信息失败后重试。#60513
  • 移除物化视图和基表的分区列必须一对一匹配的限制。#60565
  • 支持构建 Runtime In-Filter 增强聚合操作,通过在聚合阶段过滤数据来优化查询性能。#59288

问题修复

修复了以下问题:

  • 低基数优化导致多列 COUNT DISTINCT 查询 Crash。 #60664
  • 当存在多个同名全局用户定义函数(UDF)时,系统错误匹配这些函数。#60550
  • Stream Load 导入时的空指针问题。#60755
  • 使用集群快照进行恢复时 FE 启动报空指针问题。#60604
  • 在处理乱序值列的短路查询时因读取列模式不匹配导致的 BE 崩溃。#60466
  • 在 SUBMIT TASK 语句中通过 PROPERTIES 设置 Session 变量不生效。#60584
  • SELECT min/max 查询在部分条件下查询结果不正确。#60601
  • 当谓词左侧为函数时,系统调用错误的分片裁剪逻辑,导致查询命中错误的 bucket 进而导致查询结果不正确。#60467
  • 通过 Arrow Flight SQL 协议查询不存在的 query_id 导致系统崩溃。 #60497

行为变更

  • lake_compaction_allow_partial_success 默认值变更为 true。Compaction 操作在部分成功后可以标记为成功,避免阻塞后续的 Compaction 任务。 #60643

3.5.1

发布日期:2025 年 7 月 1 日

新增特性

  • [Experimental] StarRocks 自 3.5.1 版本起,引入基于 Apache Arrow Flight SQL 协议的高性能数据传输链路,全面优化数据读取路径,显著提升传输效率。该方案打通了从 StarRocks 列式执行引擎到客户端的全链路列式传输,避免了传统 JDB 和 ODBC 接口中频繁的行列转换与序列化开销,真正实现了零拷贝、低延迟、高吞吐的数据传输能力。#57956
  • Java Scalar UDF(用户自定义函数)的输入参数支持 ARRAY 和 MAP 类型。#55356
  • 跨节点数据缓存共享功能:支持在计算节点之间通过网络共享远程数据湖上外表数据的缓存。当某个计算节点本地缓存未命中时,会优先尝试从同一集群内其他节点的缓存中获取数据,只有在集群内所有节点缓存均未命中的情况下,才会从远程存储重新拉取数据。此功能可有效降低在弹性扩缩容过程中缓存失效导致的性能抖动,确保查询性能稳定。新增 FE 配置参数 enable_trace_historical_node 控制该行为,默认为 false#57083
  • Storage Volume 新增对 Google Cloud Storage (GCS) 的原生支持:支持以 GCS 作为后端存储卷,以及通过原生的 SDK 管理和访问 GCS 存储资源。#58815

功能优化

  • 优化创建 Hive 外表失败时的报错信息。#60076
  • 通过 Iceberg Metadata 中的 file_record_count 优化 count(1) 查询性能。#60022
  • 优化 Compaction 调度逻辑,避免在所有子任务都成功的情况下依然延迟调度的情况发生。#59998
  • BE 和 CN 节点升级到 JDK17 后,新增 JAVA_OPTS="--add-opens=java.base/java.util=ALL-UNNAMED"#59947
  • 支持在 Kafka Broker 的 Endpoint 发生变更时通过 ALTER ROUTINE LOAD 命令修改 kafka_broker_list 属性。#59787
  • 支持通过参数精简 Docker Base Image 构建时的依赖。#59772
  • 支持通过 Managed Identity 认证访问 Azure。#59657
  • 优化通过 Files() 函数查询外部数据时路径列重名的报错信息。#59597
  • 优化 LIMIT 下推逻辑。#59265

问题修复

修复了如下问题:

  • 当查询包含 Max 和 Min 且包含空分区时的分区裁剪的问题。#60162
  • 物化视图改写查询时丢失 Null 分区的而导致的查询结果不正确问题。#60087
  • Iceberg 外表使用基于 str2date 函数的分区表达式时导致的刷新异常。#60089
  • 使用 START END 方式创建的临时分区的分区范围不正确的问题。#60014
  • Routine Load 指标在 非 Leader FE 节点上显示不正确的问题。#59985
  • 执行包含 COUNT(*) 窗口函数的查询会触发 BE/CN 崩溃。#60003
  • 通过 Stream Load 导入时目标表表名包含中文时导入失败的问题。#59722
  • 导入至三副本表时,某个 Secondary 副本导入失败而导致导入整体失败的问题。#59762
  • SHOW CREATE VIEW 丢失参数的问题。#59714

行为变更

  • 部分 FE 指标新增 is_leader 标签。#59883

3.5.0

发布日期:2025 年 6 月 13 日

存算分离

  • 存算分离集群支持生成列。#53526
  • 存算分离集群中的云原生主键表支持重建指定索引,并优化了索引性能。#53971 #54178
  • 优化了大规模数据导入的执行逻辑,避免因内存限制在 Rowset 中生成过多小文件。导入执行过程中,系统会将临时数据块进行合并,减少小文件的生成,从而提升导入后的查询性能,也减少了后续的 Compaction 操作,提升系统资源利用率。#53954

数据湖分析

  • [Beta] 支持在集成 Hive Metastore 的 Iceberg Catalog 中创建 Iceberg 视图,并支持通过 ALTER VIEW 语句添加或修改 Iceberg 视图的 SQL 方言,以增强与外部系统的语法兼容性。#56120
  • 支持 Iceberg REST Catalog 的嵌套命名空间。#58016
  • 支持使用 IcebergAwsClientFactoryIceberg REST Catalog 创建 AWS 客户端以支持 Vended Credential。#58296
  • Parquet Reader 支持使用 Bloom Filter 进行数据过滤。#56445
  • 查询时,支持为 Parquet 格式的 Hive/Iceberg 表中低基数列自动创建全局字典。#55167

性能提升与查询优化

  • 统计信息优化:
    • 支持 Table Sample,通过对物理文件中的数据块采样,提升统计信息的准确性和查询性能。#52787
    • 支持记录查询中的谓词列,便于进行有针对性的统计信息收集。#53204
    • 支持分区级基数估算。系统复用了 _statistics_.column_statistics 视图记录各分区的 NDV。#51513
    • 支持多列联合 NDV 收集,用于优化 CBO 在列间存在关联场景下的查询计划生成。#56481 #56715 #56766 #56836
    • 支持使用直方图估算 Join 节点的基数和 in_predicate 的选择率,提高数据倾斜场景下的估算精度。#57874
    • 优化 Query Feedback 功能:结构相同但参数值不同的查询会归为同一类型,共享 Tuning Guide 信息。#58306
  • 在特定场景下,支持使用 Runtime Bitset Filter 替代 Bloom Filter 进行优化。#57157
  • 支持将 Join Runtime Filter 下推到存储层。#55124
  • 支持 Pipeline Event Scheduler。#54259

分区管理

集群管理

  • FE 编译的 Java 目标版本从 Java 11 升级至 Java 17,提升系统稳定性和性能。#53617

安全认证

  • 支持基于 MySQL 协议的 SSL 加密连接#54877
  • 增强外部认证集成:
  • 支持 Group Provider 从外部认证服务中获取用户组信息,并可用于认证和权限控制。支持从 LDAP、操作系统或文件中获取组信息。用户可通过 current_group() 查询所属的组。#56670

物化视图

  • 支持创建多个分区列的物化视图,实现更灵活的数据分区策略。#52576
  • 支持将 query_rewrite_consistency 设置为 force_mv,强制系统在改写查询时使用物化视图,以保证性能的稳定性(可能牺牲部分数据实时性)。#53819

数据导入与导出

  • 支持设置 pause_on_json_parse_errortrue,在 JSON 解析失败时暂停 Routine Load 作业。#56062
  • [Beta] 支持包含多个 SQL 语句的事务(目前仅支持 INSERT 语句)。用户可启动、提交或撤销事务,以实现多次导入操作的 ACID 事务保障。#53978

函数支持

Rocky the happy otterStarRocks Assistant

AI generated answers are based on docs and other sources. Please test answers in non-production environments.