http://starrocks.io logo
Join Slack
Powered by
# announcements
  • b

    Beryl Chen

    04/30/2026, 10:28 PM
    📬 The April issue is out, and there's a lot worth your scroll. New CelerData Cloud BYOC features, a StarRocks 4.1 release you'll want to dig into, customer engineering stories that pull back the curtain, community work pushing the ecosystem forward — plus where you can find us in person next month! Dive in 👇 https://www.linkedin.com/pulse/april-2026-highlights-whats-new-production-wins-community-builds-xl59f
    🙌 3
    rocky nice 1
  • k

    Kate Shao-Community Manager

    05/07/2026, 1:58 AM
    📚 New blog: StarRocks 4.1: When Your Table Design Outlives Its Assumptions In multi-tenant environments, table design decisions that worked on day one can start breaking down as tenants grow unevenly, data distribution shifts, and query patterns change. This blog introduces Adaptive Multi-Tenant Data Management in StarRocks 4.1, including Range distribution, large tablets, and automatic split/merge. Read the blog here 👉 https://www.starrocks.io/blog/starrocks-4.1-when-your-table-design-outlives-its-assumptions
    yay 3
  • g

    GitHub

    05/09/2026, 7:09 AM
    Release - 4.0.10 New release published by wangsimo0 4.0.10 Release Date: May 9, 2026 Behavior Changes • Cloud storage credentials are now redacted in error messages produced by
    INSERT INTO FILES
    , preventing accidental exposure of secrets in error logs and
    SHOW LOAD
    output. #71245 • StarRocks no longer permits queries against insert-only ACID Hive tables in Hive catalog. Previously such queries could silently return more rows than actually visible because INSERT OVERWRITE operations were not recognized. Affected tables now return an explicit error instead of incorrect results. #71460 Improvements • Added an Avro schema cache in Iceberg
    PartitionData
    construction to remove redundant Jackson
    ObjectMapper
    allocations during partition load on tables with many partitions. #72215 • Optimized
    CatalogRecycleBin.getAdjustedRecycleTimestamp
    to avoid rebuilding the table-id map on every call, reducing recycle-bin cleanup and tablet scheduling overhead. #72128 •
    OlapTableSink.createLocation
    now batches tablet-location lookups in shared-data mode, removing per-tablet StarOS RPCs that previously stalled the planner critical section. #72041 • Java UDAF instances are now loaded and initialized once per query and reused across pipeline driver instances, removing the linear driver-preparation overhead at high
    pipeline_dop
    . #72038 • Added BE metrics
    starrocks_be_staros_shard_info_fallback_total
    and
    starrocks_be_staros_shard_info_fallback_failed_total
    to track when the StarOS worker falls back to fetching shard info from
    starmgr
    because the local cache missed. #71620 • File-bundle writes now prefer a tablet-local aggregator so the bundled tablet metadata path does not require cross-node shard-info lookups. #71613 • Audit log entries now include the queried tables and views referenced by each query. #71596 •
    INSERT INTO FILES
    CSV export now supports
    csv.enclose
    and
    csv.escape
    properties for controlling field quoting and escaping. #71589 • Added LDAP direct bind authentication via DN pattern, removing the requirement for an admin search account in single-tenant LDAP setups. #71559 • Added the
    starrocks_fe_tablet_num
    metric for shared-data clusters to match the shared-nothing metric set. #71444 •
    star_mgr_meta_sync_interval_sec
    is now runtime-mutable via `ADMIN SET FRONTEND CONFIG`; the new interval takes effect on the next sync cycle without an FE restart. #71675 Bug Fixes The following issues have been fixed: • A race in shared-data combined txn log mode where INSERT into per-partition coordinator dispatch could classify legitimate txn logs as orphan and drop them, leaving the transaction stuck in non-VISIBLE state. #72237 • An issue where
    _incremental_open_node_channel
    channels in shared-data combined txn log mode silently dropped txn logs because the legacy "sender_id == 0 collects all logs" rule did not apply to incremental channels. #71992 • An issue where
    RuntimeProfile::to_thrift()
    could crash BE with
    std::bad_optional_access
    when another thread reset counter min/max values during profile serialization. #72904 • An inconsistency in flat JSON merge results when one side contributed empty values. #72973 • An issue where
    CREATE TABLE
    for an Iceberg table failed with "Multiple entries with same key: format-version" when the user explicitly specified
    format-version
    in
    PROPERTIES
    . #72828 • A
    CompactionScheduler.startCompaction
    lock scope that held a DB-wide READ lock across single-table critical work, blocking concurrent DDL on other tables in the same database. Switched to IS on DB plus READ on the target table. #72178 • An issue where
    StarMgrMetaSyncer.syncTableMetaInternal
    and
    syncTableColocationInfo
    held DB READ/WRITE locks across external StarOS RPCs, freezing CREATE/DROP/ALTER/RENAME on every table in the database for the duration of each RPC. #72108 • An issue where
    StarMgrMetaSyncer.getAllPartitionShardGroupId
    held the DB READ lock for full iteration over all cloud-native tables and physical partitions, stalling FE threads waiting for the DB write lock on large catalogs. #71614 • A redundant DB READ lock in
    getTableNamesViewWithLock
    . The underlying
    nameToTable
    is a
    ConcurrentHashMap
    , so the enclosing lock added contention without correctness benefit. #72042 • A DB WRITE lock in the read-only
    /api/{db}/{table}/_count
    REST endpoint that was unnecessary for computing
    proximateRowCount()
    . #72053 • A batch publish deadlock caused by partition version gaps that operations like tablet split, schema change, and alter jobs reserved by advancing
    nextVersion
    without a matching publish. #71483 • A deadlock in shared-nothing mode when warming up the LRU cache for rowset metadata while the cache was full. #71459 • A
    PipelineTimerTask
    that could remain stuck in
    waitUtilFinished
    due to incorrect ordering between consumer registration and finished signaling. #72058 • A condition race in
    ConnectorSinkPassthroughExchanger::accept
    that crashed BE with SIGSEGV via out-of-bounds vector access on
    _writer_count
    . #71848 • A use-after-free in
    LoadChannel::get_load_replica_status
    caused by destruction of a temporary
    shared_ptr
    . #71843 • A use-after-free in the information schema sink due to a missing reference count increment in async RPC closure handling. #71513 • A BE crash in
    reverse(DecimalV3)
    caused by improper handling of decimal value width. #71834 • A BE crash when
    UNNEST
    produced columns whose define-expression carried an ARRAY type, which was incompatible with global dictionary generation downstream. #72027 • An NPE in FE when creating an Iceberg external table with invalid transform argument order such as `bucket(4, region)`; FE now returns a normal analyzer error. #71917 • An issue where Iceberg manifest data file cache entries were missing column statistics when the first query against a table did not request stats (for example
    SELECT *
    ). #71913 • An issue where the Iceberg min/max optimization was silently skipped when the table was partitioned by
    bucket(col, N)
    because
    PruneHDFSScanColumnRule
    injected a placeholder materialized column. #71863 • An issue where
    AggregateJoinPushDownRule
    failed to rewrite materialized views over Iceberg base tables because
    Table.getId()
    was compared instead of… StarRocks/starrocks
    ✅ 1
    🙌 3
    👀 1
    👍 2
  • k

    Kate Shao-Community Manager

    05/13/2026, 2:30 PM
    iceberg+starrocks=🔥 StarRocks 4.1 now supports native SQL
    DELETE
    for Apache Iceberg tables — no Spark jobs, custom scripts, or external rewrite pipelines required. 👉 Read the full blog to see how it works and why it matters: https://medium.com/starrocks-engineering/starrocks-4-1-no-more-external-rewrite-pipelines-for-apache-iceberg-deletes-ce13132a082e?postPublishedType=repub
    loveit rocky 4
    dogdance 4
  • g

    GitHub

    05/14/2026, 1:49 AM
    Release - 3.5.17 New release published by yingtingdong Release date: May 13, 2026 Behavior Changes •
    SHOW CREATE TABLE
    and
    DESC
    now show Primary Keys for Paimon tables. #70535 • Disallowed INSERT into insert-only ACID Hive tables in Hive catalogs. #71460 •
    START_TIME
    and
    END_TIME
    in Profile are now displayed using the session time zone. #71429 Improvements • Supports
    csv.enclose
    and
    csv.escape
    in
    INSERT INTO FILES
    CSV export. #71589 • Added query relation information (directly queried tables and viewa) to audit logs. #71596 • Made the FE configuration
    star_mgr_meta_sync_interval_sec
    runtime mutable. #71675 • Reduced metadata and lock overhead in table metadata and row-count paths. #72053 #72042 #71672 • Improved build and dependency hygiene by merging the broker builder into the FE build and removing WildFly OpenSSL. #71823 #71908 Bug fixes The following issues have been fixed: • Wrong results for local-shuffle aggregate queries with OFFSET. #71997 • Incorrect Join output properties after Exchange shuffle columns are pruned. #72003 • Several dependency CVE issues. #71762 #71914 • Oracle JDBC NLS format handling issue. #71412 • Missing Iceberg column statistics in manifest data file cache. #71913 • Missing Hive partition directory before INSERT OVERWRITE commit. #71810 • Aggregate-join-pushdown materialized view rewrite and min/max optimization issues on Iceberg base tables. #71856 #71863 • Race conditions in
    ConnectorSinkPassthroughExchanger
    and
    LoadChannel::get_load_replica_status
    . #71848 #71843 • Credential redaction issue in INSERT FILES operations. #71245 • Incorrect
    reverse(DecimalV3)
    results. #71834 • Missing JNI exception handling checks in Java UDF code. #71734 • Incorrect short-circuit checks in
    EventScheduler
    . #71740 • Incorrect Arrow Flight column name for empty result sets. #71534 • Batch publish deadlock caused by partition version gaps. #71483 • Repeated Apply attachments in scalar-subquery plans. #71155 StarRocks/starrocks
  • k

    Kate Shao-Community Manager

    05/28/2026, 1:42 PM
    Hi community, 👋 Recently we’ve published two new blogs on starrocks*StarRocks 4.1 + Apache Iceberg*iceberg: 1️⃣ StarRocks 4.1: Native Support for Semi-Structured Data in Iceberg Learn how StarRocks 4.1 brings Iceberg Variant into distributed execution, enabling faster queries on semi-structured data without repeated JSON parsing. 👉 https://medium.com/starrocks-engineering/starrocks-4-1-native-support-for-semi-structured-data-in-iceberg-6c71e989dd63 2️⃣ StarRocks 4.1: Iceberg Acceleration That Stays Fresh Explore how Incremental Materialized Views on Iceberg help keep acceleration fresh by refreshing based on data changes instead of full table history. 👉 https://medium.com/starrocks-engineering/starrocks-4-1-iceberg-acceleration-that-stays-fresh-9bc962c056a4 If you’re working with Iceberg, semi-structured data, or large-scale lakehouse analytics, we’d love for you to give them a read and share your thoughts in the thread. 👇
    danceml 1
    jabgood 1
    thumbup rocky 2
    starrocks 2
    ✅ 1
    👀 1
    🙌 1
    ❤️ 1
  • g

    GitHub

    06/09/2026, 6:16 AM
    Release - 4.0.11 New release published by wangsimo0 Release Date: June 5, 2026 Behavior Changes •
    get_json_string
    and the other
    get_json_*
    functions now return the JSON parse error instead of NULL when implicit VARCHAR-to-JSON parsing fails under
    ALLOW_THROW_EXCEPTION
    . The default behavior (returning NULL when the mode is disabled) is unchanged. #73199 •
    pipeline_enable_large_column_checker
    is now enabled by default. #72798 Improvements • Lake write-path load spill files now use a flat, single-level directory layout with the transaction ID baked into each filename, and are reclaimed by a txn-id-based vacuum pass. This moves bulk deletes off the write hot path and lets vacuum clean up spill files leaked by BE crashes. #73064 • SHOW statements (such as
    SHOW GRANTS
    and
    SHOW WAREHOUSES
    ) are now allowed inside an explicit transaction, so BI/JDBC clients that automatically issue SHOW no longer break the transaction flow. #72954 • Java UDAF and UDTF now support STRUCT arguments and return types. #72911 • Scalar Java UDF now supports STRUCT arguments. #72620 • Java UDF now supports DATE and DATETIME types. #72337 • Java UDF now supports nested ARRAY/MAP types. #72283 • Added the FE configuration
    deploy_serialization_min_thread_pool_size
    . #72274 • Skipped redundant partition key expression building when an
    add_partition_value
    deduplication hit occurs. #73156 • Avoided a redundant
    latestSnapshot()
    call in
    PaimonMetadata#getTableVersionRange
    . #72892 • Deduplicated commutative AND/OR expressions in scalar operator common subexpression elimination. #72823 Bug Fixes The following issues have been fixed: • A memory leak introduced by the UDAF cache. #74025 • An incorrect implementation in aggregate combined functions. #74169 • An issue in shared-data combined txn log mode where the per-partition coordinator claim was not re-recorded on every sender's open, which could drop txn logs. #73962 • A read failure on Iceberg tables that use a custom
    LocationProvider
    , fixed by lazily initializing the
    LocationProvider
    in
    SerializableTable
    . #73482 • A serialization failure caused by the
    de.javakaffee
    UnmodifiableCollectionsSerializer
    , now replaced with a Java 17-compatible version. #73458 •
    HdfsFsManager
    copy error messages now include the underlying cause. #73414 • A concurrent
    SegmentFlushTask
    race in
    DeltaWriter::commit()
    . #73371 • Sort merge provider errors are now propagated to the fragment context instead of being lost. #73337 • An issue where Ranger row-filter/masking policies on Hive views were skipped, so policies on the view or its base tables were not applied. #73265 • Upgraded libthrift to 0.23.0 to address a security vulnerability (CVE). #73243 • An FE file-descriptor leak, fixed by reusing
    HttpClient
    instances. #73239 • Parquet broker load errors now include file/column/row context. #73236 • A slot lookup failure for output slots with an empty
    col_name
    in the Spark connector external scan. #73225 • A crash in
    SinkBuffer
    during graceful exit. #73202 • Query cache conflicts with local shuffle aggregation. #73194 • A use-after-free of the Hive partition descriptor across fragment teardown. #73176 • A thread-safety issue in lake vacuum, fixed by using
    localtime_r
    . #73088 • A race condition between
    PipelineTimerTask
    doRun
    and unscheduling during query context destruction. #73082 • Lock contention on read-only query-engine paths, reduced by relaxing DB locks. #73067 • An materialized view refresh failure with SQL Server tables in a JDBC catalog. #72962 • A JNI local-reference leak in
    JDBCScanner::_init_jdbc_scanner
    . #72913 • An issue where partition TopN could lose a child's output column. #72848 • An incorrect plan caused by not clearing
    LambdaArgument.transformedOp
    before INSERT OVERWRITE re-planning. #72832 • The coordinator lock was held during external resource cleanup. #72830 •
    Locker
    rollback is now exception-safe and the unlock order is fixed. #72789 • An incorrect byte order in
    ColumnDict.merge
    , now using unsigned byte order. #72778 • A stack-buffer-overflow when formatting into a temporary
    std::string
    . #72728 • The HAVING clause is now checked when disabling aggregation spill on a small LIMIT. #72705 • A hang caused by joining forwarded RPCs when draining the runtime_filter worker. #72626 • Incorrect lazy-materialization slot nullability for a materialized view over an outer join. #72621 •
    merge_condition
    was not preserved when applying a normal rowset commit. #72542 • Lock contention in
    TabletScheduler
    /
    TabletSchedCtx
    hot paths during clone, reduced by relaxing DB locks. #72475 •
    Locker
    did not roll back a partial intensive-lock acquisition. #72423 • A spillable hash join probe crash. #72397 • COALESCE children are now cast to a common type in the JOIN USING transformer. #72338 • DB READ lock was held too broadly for single-table proc directories, now relaxed to per-table. #72334 • A memory leak when caching the materialized view plan context. #72300 • FSE-v2 did not set the schema for shared-data sorted schema change. #72235 •
    ConsistencyChecker
    held a DB READ lock too broadly in periodic scans, now relaxed to per-table READ. #72218 • A BE crash when querying
    information_schema.warehouse_queries
    . #72019 • A trailing
    \r
    was not stripped before the closing enclose in CRLF … StarRocks/starrocks
    j
    • 2
    • 1
  • g

    GitHub

    06/09/2026, 9:02 AM
    Release - 3.5.18 New release published by yingtingdong Release date: June 5, 2026 Behavior Changes •
    SHOW
    statements are now allowed inside explicit transactions. #72954 •
    get_json_string
    now respects
    ALLOW_THROW_EXCEPTION
    when handling JSON parsing errors. #73199 •
    IGNORE NULLS
    is now preserved in view definitions when the window function argument is an expression. #69971 • Ranger row filter and masking policies are now correctly applied to Hive views and to base tables expanded from Hive view definitions. #73265 • Hive partition statistics are no longer automatically refreshed per partition. Existing cached stats are preserved while a table-level asynchronous refresh updates the cache in batches. #73563 Improvements • Supports caching Java UDAF class-level initialization so shared UDAFs can reuse loaded classes and generated stubs across aggregator and window-function instances. #72038 • Supports Paimon time types and improves Paimon materialized view handling. #58292 • Added an Avro schema cache for shadowed
    PartitionData
    during partition load. #72215 • Added a configurable FE write timeout
    mysql_send_packet_timeout_ms
    for the MySQL result send path to prevent indefinitely blocked result sending to slow clients. #73646 • Optimized
    CatalogRecycleBin
    adjusted recycle timestamp lookup. #72128 • Reduced metadata and lock overhead in load balancing, compaction scheduling, consistency checks, and StarMgr metadata synchronization paths. #73555 #72218 #72178 #72108 • Improved diagnostics for filesystem copy failures and Parquet broker load errors by surfacing the underlying cause and file/column/row context. #73414 #73236 • Reduced external catalog and information schema metadata overhead by deferring JDBC REMARKS fetching, avoiding redundant Paimon snapshot lookups, and pushing down
    table_name
    predicates for
    information_schema.tables_config
    . #73488 #72892 #73210 • Simplified the scalar-function merge implementation by using
    merge()
    directly. #69575 Bug fixes The following issues have been fixed: • Empty
    ALTER TABLE
    statements could be parsed as OPTIMIZE clauses, and replaying malformed OPTIMIZE jobs could clear a table's default distribution. #73352 • Decimal-valued unit counters in runtime profiles could cause query progress parsing failures and noisy FE warnings. #73683 • Concurrent
    SegmentFlushTask
    race in
    DeltaWriter::commit()
    and loss of
    merge_condition
    during normal rowset commit. #73371 #72542 • Crashes, hangs, or unsafe cleanup in
    SinkBuffer
    graceful exit,
    PipelineTimerTask
    , runtime filter workers, spillable hash join probe,
    information_schema.warehouse_queries
    , lake vacuum, HTTP connection unregister paths, and query queue timeout handling. #73202 #73082 #72058 #72626 #72397 #72019 #73088 #72006 #65802 • Materialized view issues involving JDBC SQL Server tables, lost index properties, cached plan context memory leaks, Paimon tables, and incorrect shuffle distribution after MV rewrite. #72962 #69187 #72300 #58292 #71075 • Query planning and rewrite issues in Spark connector external scans,
    INSERT OVERWRITE
    re-planning, aggregation spill with small LIMIT, and generated columns produced by
    UNNEST
    . #73225 #72832 #72705 #72027 • Paimon Primary Key columns could be incorrectly marked as non-nullable when querying external catalogs. #71660 • Primary Key and tablet metadata issues including partial tablet schema short-key mismatch, rowset metadata cache warmup deadlock, disk data cache expansion failure, Azure filesystem client cache issues in Starlet, and colocate-heavy cluster-balance performance issues in StarOS. #70586 #71459 #58206 #73145 #72391 • Locker rollback and unlock-order issues during partial intensive-lock acquisition. #72789 #72423 • Dependency CVEs and broker dependency regressions. #72905 #72797 #72184 #72191 • JNI local-reference leaks in JDBC scanner initialization. #72913 • Arrow dictionary values in Parquet scanner and Apache Parquet namespace ambiguity during scanner builds. #71855 #72284 • NPE in Iceberg
    getPartitionLastUpdatedTime
    when the snapshot is expired. #68925 StarRocks/starrocks
  • k

    Kate Shao-Community Manager

    06/10/2026, 7:44 AM
    Hi Community, 👋 StarRocks now has an integration with OpenMetadata, making it easier to catalog StarRocks metadata and support workflows like metadata ingestion, query usage, lineage, and profiling. cool rocky 🚀 To get started, check out the official OpenMetadata setup guide: https://docs.open-metadata.org/v1.12.x/connectors/database/starrocks ✅ For a hands-on walkthrough with real test results and setup notes, read @김병주’s tested guide here: https://starrockskorea.super.site/starrocks-library/starrocks-with-openmetadatabeta
    🎉 5
    👀 1
    🙌 2
  • b

    Beryl Chen

    06/11/2026, 1:45 PM
    Friendly reminder: Our webinar, Introducing PhoenixAI: Built for Agents That Query, Reason, and Act, is happening tomorrow at 10:00 AM PT! Save your seat here: https://bit.ly/4eyPQ5Y yay <!channel> AI agents are creating a new set of demands on the data layer — from agent-scale latency and concurrency to ad hoc queries, fresh data, and governance built for autonomous workloads. In this session, our product expert, Sida Shen, will unpack what that means in practice: why existing analytical infrastructure wasn’t designed for these patterns, what PhoenixAI Cloud supports today, and how we’re building toward one analytical database for the full agent loop: decision → execution → trace. We’ll also have live Q&A at the end. If you can’t join live, register anyway and we’ll send the recording afterward! https://bit.ly/4eyPQ5Y
    🚀 4
    party 2
    m
    • 2
    • 2
  • k

    Kate Shao-Community Manager

    06/12/2026, 8:00 AM
    Hi Community, 👋 Have you tried @Rocky in the #C02FACZSNJV channel?rocky nice Next time you have a StarRocks question, give it a try! Today, we’re sharing the story behind Rocky: how we built this RAG assistant, the architecture choices we made, and the lessons we learned along the way. If you’re using StarRocks and thinking about building lightweight AI applications, this post is worth checking out: https://medium.com/dev-genius/lessons-we-learned-building-a-rag-assistant-without-a-separate-vector-database-26df51f33219 We’d love to hear from you: are you using StarRocks to build AI apps? What feedback do you have for improving Rocky? Drop your thoughts in the comments.👇
    🙌 4
    👍 3
    ✅ 1
    👀 1
  • g

    GitHub

    06/18/2026, 11:33 PM
    Release - 4.1.1 New release published by celerdata2308 4.1.1 Release Date: May 29, 2026
    Container Image Issue (v4.1.0): Due to an unstable load order issue in the v4.1.0 container image, BE processes may fail to start reliably in container environments. Container environment users should NOT upgrade to v4.1.0; use v4.1.1, which includes the fix (#71825).
    Downgrade Notes: After upgrading StarRocks to v4.1, DO NOT downgrade to any v4.0 version below v4.0.6. Due to internal data-layout changes in v4.1 (tablet splitting and distribution), downgrade from v4.1 is only supported to v4.0.6 or later.
    Behavior Changes • The Hive connector now uses a native C++ Avro scanner instead of the JNI Avro scanner by default. #73237 #73569 • Query rewrite over INCREMENTAL/AUTO materialized views is now disabled, and FORCE refresh and partition refresh are rejected for INCREMENTAL/AUTO materialized views. #72890 #72336 #71355 Improvements • Java UDF/UDAF/UDTF now support more types: STRUCT arguments and return values for UDAF/UDTF, nested ARRAY/MAP types, DATE/DATETIME, DECIMAL, and varargs. #72911 #72283 #72337 #72208 #68596 • Scalar UDFs now support STRUCT arguments. #72620 • Python UDFs now support nested ARRAY/MAP types. #72210 • UDAFs are now loaded and initialized once and reused across queries, reducing per-query overhead. #72038 • Replaced the JNI Avro scanner with a native C++ scanner for the Hive connector, with direct binary decoding and support for
    avro.schema.literal
    and
    avro.schema.url
    . #73237 #73283 #73257 #73569 • Supports the Trino
    WITH
    clause in CTAS statements. #71960 • Completed Iceberg
    timestamptz
    partition transform support on the sink path. #73397 • Enabled TopN runtime filter pushdown for Iceberg table aggregation. #72332 • Supports Iceberg datetime min/max optimization. #71870 • Allows HDFS HA configuration passthrough in Catalog and BE to support accessing multiple HDFS clusters. #71521 • Added a partition scan number limit for external table queries. #68480 • Fails fast for unsupported Iceberg V3 features. #70242 • Supports
    csv.enclose
    and
    csv.escape
    for CSV exports via INSERT INTO FILES. #71589 • Added the
    enable_push_down_schema
    INSERT property for full schema push-down to
    files()
    . #70978 • Routine Load jobs are now paused on non-retryable errors (for example, primary key size exceeded). #71161 • Supports join reorder for complex expressions from two children. #71615 • Improved CBO statistics estimation, including MCV/null-fraction propagation for
    date_trunc
    ,
    array_map
    , CASE WHEN, IS NULL, UNION, and constants. #72233 #70372 #70221 #70865 #70989 #71000 • Improved skew join detection: skew is only detected when all join keys are skewed, and a
    force_group_by_skew_eliminate_when_skewed
    switch was added to force the skew rule. #72753 #71382 • Supports constant folding for
    regexp_replace
    in the FE. #70804 • Optimized MIN/MAX on date partition columns with constant partition values. #69880 • Introduced the
    SCHEDULE
    keyword as a synonym for
    ASYNC
    in materialized view refresh. #72329 • Supports tablet creation retry for Lake tables in shared-data mode. #71068 • Supports conditional update for Lake column-mode partial update. #71961 • Parallelized partial-update publish, persistent index initialization, and SSTable opening to improve ingestion throughput. #71652 #71217 #72112 #71145 #72986 • Supports DCG file synchronization during shared-nothing to shared-data replication. #69339 • Supports schema evolution for widening VARCHAR length on both key and non-key columns. #70747 • Added the
    snapshot_meta.json
    marker for cluster snapshot integrity checks. #71209 • Supports LDAP direct bind authentication via a DN pattern. #71559 • Added the
    get_query_dump_from_query_id
    meta function for easier query troubleshooting. #72875 • Supports auditing queried relations in the audit log. #71596 • Added session variables for MySQL binary result encoding. #71415 • Added metrics for better observability, including
    tablet_num
    for shared-data clusters,
    MemtableIOSpeed
    ,
    staros_shard_count
    , and Iceberg metadata-table query metrics. #71444 #69842 #73096 #70825 • Added the FE configuration
    deploy_serialization_min_thread_pool_size
    . #72274 • Added the
    tablet_reshard_enable_tablet_merge
    configuration to disable MergeTabletJob creation. #70906 • Eliminated HTTP-server accept thundering-herd via
    SO_REUSEPORT
    . #72956 Security • [CVE] Upgraded Netty to 4.1.133.Final. #72905 • [CVE-2026-42198] [CVE-2026-5598] Bumped pgjdbc to 42.7.11 (client-side DoS via unbounded SCRAM PBKDF2 iteration count) and BouncyCastle to 1.84 (FrodoKEM private-key leakage). <https://github.com/StarRocks/starrocks/pull/7279… StarRocks/starrocks
    👀 3
    🙌 2
    ✅ 6
    😆 1
  • g

    GitHub

    06/25/2026, 7:40 AM
    Release - 4.0.12 New release published by wangsimo0 4.0.12 Release Date: June 25, 2026 Behavior Changes • When reading INT64 timestamps from Parquet files written with
    isAdjustedToUTC=false
    (timezone-naive),
    SELECT FROM FILES()
    and broker/stream LOAD no longer shift the values by the session timezone offset. Such timestamps are now read as wall-clock values, consistent with Trino, Spark, and Impala. Previously the values drifted whenever the session timezone was not UTC. #73674 • CTAS (
    CREATE TABLE AS SELECT
    ) now preserves the declared
    VARCHAR(N)
    length when the source carries an explicit user length (a catalog column reference,
    CAST AS VARCHAR(N)
    , or a string literal), instead of widening it to
    VARCHAR(1048576)
    . This keeps the length constraint enforceable and aligns DDL with dbt schema contracts. Materialized view materialization still widens columns as before. #73498 • The Paimon connector now respects the session variable
    connector_max_split_size
    when calculating scan splits, instead of always using the default value, so tuning it now affects Paimon scan parallelism. #71756 Improvements • Optimized
    base64_to_bitmap
    by folding the conversion at constant-evaluation time for constant inputs. #74684 •
    ngram_search
    now supports a non-constant needle (the search term can be a column expression rather than only a constant). #74675 • The Arrow-to-JSON converter now supports
    LARGE_LIST
    and
    FIXED_SIZE_LIST
    types. #73714 • Added an opt-in option to isolate wide-string columns during statistics collection to reduce memory pressure. #73258 •
    information_schema.COLUMNS
    now populates the
    DATETIME_PRECISION
    field. #74623 • Relaxed database read locks to table-scoped intensive locks in
    InformationSchemaDataSource
    and
    FrontendServiceImpl
    to improve concurrency. #73936 #73913 • Narrowed database write locks to table-scoped intensive write locks for shared-nothing clusters, and scoped replica row-count updates to the table lock. #74523 #74521 • Moved the routine-load broker RPC out of the per-job write lock to reduce contention. #73591 • Deferred JDBC
    REMARKS
    fetching out of the
    getTable()
    hot path to speed up metadata access for JDBC catalogs. #73488 • Pushed down the
    table_name
    predicate for
    information_schema.tables_config
    queries. #73210 • Skipped per-replica scans on single-medium BEs in
    BackendLoadStatistic
    . #73555 • Added a write timeout to the MySQL channel result send path to prevent stuck connections. #73646 • Added catalog recycle bin size gauge metrics. #74440 • Added vacuum batch-size and retry-count metrics, and added decorrelated jitter to the lake vacuum retry backoff to reduce retry storms. #74112 #74108 • Upgraded third-party dependencies to address security vulnerabilities (CVE): Netty to 4.1.135.Final, Tomcat to 9.0.118, and Thrift to 0.23.0. #74668 #73797 #73625 Bug Fixes The following issues have been fixed: • Successfully committed multi-statement transaction stream loads were shown as
    PREPARING
    forever in
    information_schema.loads
    and
    SHOW STREAM LOAD
    . #74386 • Rows were silently dropped from
    information_schema.loads
    on clusters whose session timezone differs from Asia/Shanghai, because load times were exchanged as naive wall-clock strings across the BE/FE thrift boundary. #73365 • The
    COMMIT
    of an explicit transaction waited only
    query_timeout
    milliseconds (instead of seconds) for the database write lock due to a unit mismatch. #73549 •
    current_timestamp
    /
    now()
    column defaults were displayed as a frozen literal after
    ALTER TABLE ... ADD COLUMN
    and could be lost across FE restarts or edit-log replay. #73455 • Querying
    sys.fe_memory_usage
    /
    sys.fe_locks
    without the
    OPERATE ON SYSTEM
    privilege returned a misleading RPC-failure message instead of a clear access-denied error. #73567 • Automatic per-key Hive partition stats refresh could overload the Hive Metastore for tables with many partitions. #73563 • A null-pointer issue when reading the GTID during a schema change. #74855 • An empty analytic operator was not pruned after pushing down a distinct aggregation. #74810 • Zero row counts could corrupt partition statistics. #74801 • Vector index rewrite could pollute the shared table schema. #74785 • An
    IllegalStateException
    during parallel profile collection, fixed by making Tracers fork-aware. #74746 • BE vacuum tasks were not aborted once the FE caller's timeout elapsed. #74694 • Partition consumer errors in
    ChunksPartitioner
    were lost instead of being propagated. #74693 • A lock mismatch in
    blockingAddTabletCtxToScheduler
    . #74596 • A typo in the
    azure_adls2_oauth2_client_endpoint
    configuration field name. #74581 • Pipeline observers were not notified on missed operator state transitions. #74557 • The reported vacuum watermark was incorrect when retain-boundary metadata was gone. #74429 • A data race on
    MaterializedIndexMeta
    during
    updateSchemaBackendId
    . #74412 • A non-primary-key replica could get stuck with a permanent version hole; it now self-heals. #74408 • A use-after-free of
    LLVMContext
    when JIT compilation fails. #74396 • A column mismatch in the missing-replica row of
    ADMIN SHOW REPLICA STATUS
    . #74393 • Invalid JIT IR generated for
    CASE WHEN
    with mixed float/int WHEN and result types. #74382 • The
    CatalogRecycleBin
    was frozen when a cluster snapshot kept failing. #74379 • A partial update targeting a table modified earlier in the same explicit transaction is now rejected with a clear error. #74344 • Immutable-partition updates did not use the transaction's compute resource. <https://github.c… StarRocks/starrocks
    ✅ 1
    👀 1
  • k

    Kate Shao-Community Manager

    06/26/2026, 1:54 AM
    🆕 Integration:starrocks StarRocks x DataHub The latest blog walks through how to make StarRocks metadata discoverable in DataHub, including tables, views, external catalogs, profiling metadata, and column-level view lineage — all in one searchable metadata layer. Check it out here: https://medium.com/starrocks-engineering/make-your-starrocks-metadata-discoverable-with-datahub-f1a033e6f987
    starrocks 6
  • g

    GitHub

    06/30/2026, 2:54 AM
    Release - 3.5.19 New release published by yingtingdong Release date: June 26, 2026 Behavior Changes •
    parse_json
    now respects `ALLOW_THROW_EXCEPTION`: malformed JSON fails the query instead of silently producing
    NULL
    , mirroring the earlier
    get_json_string
    change. #74976 •
    FILES()
    and Broker Load now honor the Parquet
    isAdjustedToUTC=false
    flag for
    INT64
    timestamps, so such timestamps are no longer shifted by the session time zone. #73674 •
    SHOW FUNCTIONS
    now surfaces the
    isolation
    property (
    shared
    or
    isolated
    ) for Java UDFs and UDAFs. #75255 • The non-reserved keywords
    FLOOR
    and
    CEIL
    are now allowed as column names. #75241 Improvements • Supports loading Arrow
    LARGE_LIST
    and
    FIXED_SIZE_LIST
    columns into
    JSON
    columns via
    FILES()
    and Broker Load. #73714 #73718 • Added an opt-in
    statistics_large_string_column_merge_threshold
    to isolate wide `CHAR`/`VARCHAR` columns into dedicated statistics collection. #73258 • Optimized
    base64_to_bitmap
    for constant inputs and hardened it against invalid base64-encoded bitmaps. #74684 • Added new metrics for lake vacuum batch size and retry counts, and gauges for
    CatalogRecycleBin
    size. #74112 #74440 • Supports auditing a statement twice. #73896 Bug fixes The following issues have been fixed: • Several wrong-result and planning issues: low-cardinality dictionary translation for expressions where
    f(NULL)
    is not `NULL`; a
    Multiple entries with same key
    error from common-subexpression elimination of commutative `AND`/`OR`; an
    AGGREGATE has mismatch types
    error; a compound predicate with an always-false nested branch under
    UNION
    returning no rows; and an off-by-one that dropped a row in
    RANK
    TopN at a chunk boundary. #69376 #72823 #74159 #74218 #75045 • Materialized view rewrite issues that could return incorrect results: aggregate MVs with a
    HAVING
    clause rewriting queries without (or with weaker)
    HAVING
    , and
    avg(DISTINCT x)
    being rewritten through a `sum`/`count` MV. #73610 #75071 • Incorrect window-function results when
    enable_push_down_pre_agg_with_rank
    split a window count into local pre-aggregation and global analytic merge, and an empty window operator generated after pushing down distinct aggregation. #74453 #74810 • Partition TopN losing a child operator's output column, and silently swallowing sort or pre-aggregation errors and returning wrong or partial results. #72848 #74693 • Iceberg equality-delete rows with
    NULL
    identity-column values were not applied. #67321 • A spurious strict-mode cast overflow error raised from undefined data in
    NULL
    rows. #74903 • Decimal scale could be lost when a column is entirely
    NULL
    . #73789 • BE crashes in
    to_base64
    (stack overflow), JSON load of nested types via partial append, local partition TopN with a non-nullable aggregate result, partitioned join (out-of-bounds from inaccurate memory accounting), runtime profile serialization (counter min/max race), JIT compilation failure (use-after-free of
    LLVMContext
    ), invalid JIT IR for
    CASE WHEN
    with mixed float/integer types, and partial column updates under schema drift. #70623 #73715 #69752 #74315 #72904 #74396 #74382 #74005 • An out-of-bounds read and potential oversized allocation in
    split
    ,
    split_part
    , and
    str_to_map
    when the input ends with a truncated UTF-8 byte. #75068 • A memory leak from the UDAF context cache and inflated query-pool memory accounting in
    OlapTableSink
    . #74025 #73807 • Unexpected backend process restarts. #74424 • Materialized view issues: a slot-nullability crash for MVs defined with
    FULL OUTER JOIN
    under late materialization, an NPE refreshing nested MVs, a duplicated warehouse property in
    SHOW CREATE MATERIALIZED VIEW
    , and a vector ANN query polluting a shared table schema and breaking unrelated statements. #72621 #73644 #69418 #74785 • Querying Paimon tables whose
    DATE
    partition column contains
    NULL
    values. #73950 • Reading Hudi MOR tables with `char`/`varchar` columns when
    hudi_mor_force_jni_reader
    is enabled. #58521 • Nested
    INT96
    timestamps (inside
    ARRAY
    ,
    MAP
    , or
    STRUCT
    ) were shifted by the session time zone during `FILES()`/Broker Load. #74868 • Incorrect bytes-read statistics in the audit log for connector scans, and incremental connector scan ranges being assigned to driver sequences absent from the deployed fragment, which could drop part of the scan. #73799 #74674 • Meta scan could fail after schema changes such as
    ADD COLUMN
    , which could fail background statistics collection. #72901 • Slow broker RPCs held the per-job Routine Load write lock and blocked admin RPCs and
    SHOW ROUTINE LOAD
    . #73591 •
    ALTER ROUTINE LOAD
    persisted an invalid statement for reserved-keyword table names, which could drop the load clause on FE restart. #74188 • `GRANT`/`REVOKE` on the
    public
    role did not invalidate cached merged privileges, leaving stale authorization. #73717 • A race allowing concurrent operations to observe torn state during table and materialized-view
    RENAME
    and
    SWAP
    , and a data race on
    MaterializedIndexMeta
    schema-update tracking. #74100 #74412 • Database-level UDFs were missing on FE followers after
    RESTORE ... AS <new_db>
    . #74313 • Queries could become unkillable when a coordinator held its lock during external resource cleanu… StarRocks/starrocks
    ✅ 1
    👀 1
    🙌 1
    ❤️ 1
  • b

    Beryl Chen

    07/09/2026, 1:45 PM
    Friendly reminder: Our webinar, Introducing StarRocks 4.1, is happening tomorrow at 10:00 AM PT! yaySave your seat here: bit.ly/4w0J936 <!channel> Join us for a walkthrough of what's new in 4.1 and what it means for your cluster — then bring your questions for the live Q&A. We'll cover adaptive data distribution with automatic tablet split and merge (no more hand-tuning bucket counts), large-capacity tablets that cut FE metadata and scheduling overhead, Fast Schema Evolution v2 (now for materialized views too), deeper Iceberg integration, end-to-end cache observability, and SQL upgrades like recursive CTEs and skew join v2. Can't join live? Register anyway and we'll send the recording afterward!
    🙌 1
  • k

    Kate Shao-Community Manager

    07/10/2026, 8:32 AM
    Hi community, 👋 Here are community reading recommendations for building faster, more efficient analytics pipelines with StarRocks Real-time analytics and lakehouse workloads often come with their own challenges — from improving query performance on Iceberg tables to building reliable streaming data pipelines. Here are two practical guides from the StarRocks community: 🚀 Replacing Presto with StarRocks for Faster Ad-Hoc Analytics on Iceberg Learn how one EdTech platform reduced CPU usage by 77% and improved P90 query latency by 2–3× by migrating their Iceberg analytics workloads to StarRocks. Read more: medium.com/starrocks-engineering/replacing-presto-with-starrocks-for-faster-ad-hoc-analytics-on-iceberg… ⚡ Designing a Practical Kafka to StarRocks Pipeline for Near Real-Time OLAP Explore how to build a Kafka → StarRocks pipeline to power near real-time analytics workloads. Read more: medium.com/starrocks-engineering/designing-a-practical-kafka-to-starrocks-pipeline-for-near-real-time-olap… Have a use case or architecture you’d like to discuss? Comment in the threads👇
    🙌 2
    👍 1
    ✅ 1
    ❤️ 1
    😀 1
    🇻🇳 1
  • k

    Kate Shao-Community Manager

    07/16/2026, 9:54 AM
    🏅 Introducing the StarRocks Community Badges Ver.2026! We’ve launched a new badge program to recognize the amazing people who help build and grow the StarRocks community. There are two badge paths: 🛠️ Contributor – for technical contributions such as merged PRs, documentation improvements, bug reports, testing, and ecosystem projects. 🌟 Champion – for community contributions such as blogs, talks, meetups, tutorials, demos, case studies, and helping other community members. Each path currently has two badge levels, plus one hidden level as the highest honor. The hidden badge will be unlocked at the end of the year to recognize individuals who have made exceptional contributions to the StarRocks community. If you’ve contributed to StarRocks, we’d love to recognize your work with a digital badge that you can add to your LinkedIn profile or share on social media. 👉 Apply here: forms.gle/… The badge program recognizes contributions made during the 2026 calendar year. If you know someone in the community who’s made great contributions, please share this with them. Thank you for helping make StarRocks better! ❤️
    starrocks 3
    🙌 3
  • g

    GitHub

    07/21/2026, 6:33 PM
    Release - 4.0.13 New release published by wangsimo0 4.0.13 Release Date: July 16, 2026 Behavior Changes • The escape handling of
    LIKE
    predicates with constant operands (folded on the FE) now matches MySQL 8:
    SELECT 'a\\b' LIKE 'a\\\\b'
    returns
    1
    and
    SELECT 'a\\b' LIKE 'a\\b'
    returns
    0
    . Queries that relied on the previous non-MySQL escaping semantics will return different results. #74814 •
    SHOW [FULL] FUNCTIONS
    now always includes the
    isolation
    property (
    shared
    or
    isolated
    ) in the Properties column of UDFs, so users can tell whether the property is set without recreating the function. #75255 • Iceberg REST catalogs with vended credentials use the table metadata cache again, reverting the earlier cache bypass that sent every
    getTable()
    to the REST catalog and caused AWS Lake Formation
    Rate exceeded
    failures. Cached tables now renew their credentials on every refresh cycle, and the table cache expiry for REST catalogs is additionally capped at 3000 seconds. #75431 Improvements • Added checksum protection for shared-data tablet metadata and transaction logs. #74924 • Supported combined transaction log / file bundling for
    FRONTEND_STREAMING
    loads. #74460 • Scoped shared-data schema-change job locks to the table to reduce lock contention. #75087 • Batch tablet force-delete marking now acquires the
    TabletInvertedIndex
    write lock once per batch instead of once per tablet. #75616 • Added an FE metric for the maximum pending-publish time of committed transactions. #75025 • Added a memory limit check for column upgrades in window operator processing. #75821 • Removed unnecessary per-row seeks in the offsets-only read path of array columns. #75861 • Foreground row-count estimation of Iceberg tables is now computed from manifest metadata without enumerating every data file. #75280 • Addressed security vulnerabilities (CVE): excluded the vulnerable
    org.jline:jline
    (jline-remote-telnet) from Hadoop transitive dependencies, and upgraded jackson-databind to 2.21.4. #75066 #75373 Bug Fixes The following issues have been fixed: • Incremental scan-range scheduling could recompute a different per-driver layout when reusing a deployed fragment instance, leaving part of the scan ranges unconsumed and losing rows (for example, INSERT from Hive). #74674 • INT96 timestamps nested inside ARRAY/MAP/STRUCT in Parquet files read via
    FILES()
    or Broker Load missed the session-timezone conversion and were returned shifted by the timezone offset (top-level INT96 columns were correct). #74868 • The audit log did not record the exported row count of
    SELECT INTO OUTFILE
    . #74467 • A strict cast could raise an overflow error from the underlying data of NULL rows, which should be ignored. #74903 •
    parse_json
    did not respect the
    ALLOW_THROW_EXCEPTION
    setting when handling invalid input. #74976 • First-load statistics collection could not be enabled per table while disabled globally: an explicitly set table property now takes precedence over the global configuration
    enable_statistic_collect_on_first_load
    . #74794 • Partial column updates on shared-data tables could crash the BE or silently corrupt data when the tablet schema drifted from the transaction schema. #74005 • Unexpected BE process restarts. #74424 • A BE crash (SIGFPE) in Iceberg `truncate`/`bucket` partition transforms when the width or bucket count is zero. #74998 • A BE crash caused by a null
    driver_executor
    in
    FragmentContext::set_final_status
    . #75030 • A race between transaction begin and autovacuum could delete a still-needed transaction log, permanently wedging the partition's publish ("Both txn_log and corresponding tablet_meta missing"). #74906 •
    avg(DISTINCT x)
    was incorrectly rewritten to use a sum/count materialized view, returning wrong results. #75071 • A boundary bug in TopN RANK sorting could produce incorrect results. #75045 •
    split
    /
    split_part
    /
    str_to_map
    with an empty delimiter could read out of bounds on invalid UTF-8 input. #75068 •
    ALTER TABLE ... MODIFY COLUMN ... AFTER
    a nonexistent column now returns a clear error message. #75073 • A BE crash (SIGFPE) in
    mod()
    /
    pmod()
    when computing the type's minimum value modulo -1. #74980 •
    bar()
    grew memory without bound on a negative or huge width (potential DoS); such inputs are now rejected with an error. #75143 • The transaction-state callback was not unregistered when a multi-statement stream load task was removed. #75188 • A crash when a query was cancelled during spill partition sorting. #75140 • The query memory limit was not enforced during table function execution. #75179 • Selecting a column named
    floor
    or
    ceil
    failed at parse time with a ClassCastException. #75241 • A heap-use-after-free in
    OrderedPartitionExchanger
    when the previous chunk was mutated downstream. #75279 • Three FE metadata-lock correctness races. #74968 • Load spilling could dereference a missing query context when recording spill metrics. #75236 • ADLS2
    ListPaths
    on storage accounts without hierarchical namespace caused CN crashes and vacuum failures. #75166 • BE/CN JVM metrics emitted invalid Prometheus
    # TYPE
    lines. #75240 • JIT code generation truncated LARGEINT literals to 64 bits, producing wrong results. #75137 • A combined ALTER TABLE on an external Iceberg table re-executed already-queued actions. #74036 • A nested-loop join crash caused by a build-side column nullability mismatch. #75343 • Iceberg manifest column statistics are now cached selectively to avoid excessive FE memory usage. #75395 •
    addPhysicalPartition
    could create only one physical partition per call, making physical-partition backfill of random-distribution tables extremely slow. #75430 • A SQL injection vulnerability in the `informatio… StarRocks/starrocks
    ✅ 2
    👀 1
    🙌 1
  • g

    GitHub

    07/23/2026, 7:58 AM
    Release - 3.5.20 New release published by yingtingdong Release date: July 23, 2026 Behavior Changes •
    CREATE DATABASE IF NOT EXISTS
    on Iceberg REST catalogs now succeeds silently when the database already exists, instead of raising an error. #75017 • Iceberg REST catalogs with vended credentials now cache
    Table
    objects and keep their credentials refreshed on access, instead of bypassing the cache and re-fetching from the REST catalog/Lake Formation on every
    getTable()
    call, which could trigger AWS
    Rate exceeded
    errors. #75431 • GIN inverted-index-accelerated
    NOT MATCH
    predicates no longer return rows with a
    NULL
    value, matching SQL three-valued-logic semantics. #75578 Improvements • Added the FE metric
    txn_max_committed_pending_publish_ms
    , a per-database gauge reporting the longest time a committed transaction has been pending publish, to help diagnose stuck or lagging version publishing. #75025 • Enforced the query memory limit when a column is upgraded (widened) during window-function aggregation in
    Analytor
    , instead of letting it grow unbounded. #75821 • Removed useless per-rowid seeks in the array-column offsets-only read path used by `array_length()`/`cardinality()`. #75861 Bug fixes The following issues have been fixed: • Several wrong-result issues:
    EliminateSortColumnWithEqualityPredicateRule
    dropping the global
    LIMIT
    under concurrency;
    SplitJoinORToUnionRule
    producing duplicate rows for a null-safe-equal (
    <=>
    ) `JOIN ON p1 OR p2`; JIT codegen truncating
    LARGEINT
    literals
    >= 2^64
    to 64 bits; `array_map`/`transform` silently dropping
    NULL
    rows when all non-null input arrays were empty; nested dictionary expressions rebuilt inconsistently across exchange fragments causing dict-decode failures; and a
    LIKE
    pattern with the
    _
    wildcard returning wrong rows on a GIN inverted index. #74983 #75038 #75137 #75141 #75246 #75551 • Join-reorder column pruning could drop a column still referenced by a predicate, causing a
    missing statistic of col
    planning error, and
    JoinTuningGuide
    could lose
    predicateCommonOperators
    when rebuilding a join, failing plan validation. #74791 #75773 • Sync materialized view/rollup rewrite could lose a rollup column when a query aggregated the same base column twice (e.g.
    min(c)
    and
    max(c)
    ), and async materialized view rewrite could serve stale results after an Iceberg base table's
    rollback_to_snapshot
    . #75528 #75924 •
    PARTITION-TOP-N
    could rewrite its partition-by column to a dictionary slot that no longer existed, failing with a
    slot_id not found
    error. #75956 • An NPE collecting view tables when a
    SECURITY INVOKER
    view's stored definition contains a CTE. #74813 • Three FE metadata-lock correctness races around
    DROP PERSISTENT INDEX
    ,
    RestoreJob
    post-restore handling, and related unlocked paths. #74968 • A race between FE EOS-cancel and BE stage-2 deploy could mark a fully successful query as canceled. #75009 •
    ApplyTuningGuideRule
    could throw
    UnsupportedOperationException
    when an earlier rewrite produced an
    OptExpression
    with an immutable input list. #70785 • BE/CN crashes: a null
    driver_executor
    when a cancel RPC arrives before pipeline start; a use-after-free in the spill partition-sort-sink cancel path; a heap-use-after-free in
    OrderedPartitionExchanger
    for a skew-hinted window function at DOP>1; an
    NLJoin
    crash from a build-side column nullability mismatch; a
    StructColumn
    field-count mismatch in
    UNNEST
    output; a crash loop reading a flat-JSON column that changed from
    NOT NULL
    to nullable during compaction; an uncaught memory-allocation exception in `NLJoinProbeOperator`; a crash in primary-key auto-increment partial-update apply; and a crash rewriting predicates inside an
    array_map
    lambda during scan-predicate pushdown. #75030 #75140 #75279 #75343 #75445 #75680 #75788 #76119 #76380 •
    histogram()
    crashed (or silently mis-bucketed values) on a non-positive
    bucket_num
    instead of raising a clear error, and
    bar()
    could grow an unbounded string for a negative or huge
    width
    argument, exhausting BE memory. #75041 #75143 • A query using
    unnest
    over array columns could exceed
    query_mem_limit
    and get the BE OOM-killed instead of failing just that query. #75179 • A second-order SQL injection in the
    information_schema.task_runs
    `TASK_NAME`/`QUERY_ID` predicate lookup. #75520 •
    SHOW CREATE ROUTINE LOAD
    could emit a spurious leading comma before the first load-desc clause, and an unescaped
    jsonpaths
    value, producing non-runnable DDL. #75522 #75755 • Shared-data (lake)
    SHOW PARTITIONS
    and
    information_schema.partitions_meta
    reported every physical partition's bucket count as the table-level default instead of its own bucket count. #75734 • Several dependency CVEs by upgrading
    jackson-databind
    and Netty. #75373 #76555 • Batched
    TabletInvertedIndex
    write-lock acquisition in
    markTabletsForceDelete
    , reducing lock churn when force-deleting many tablets at once. #75616 • Batched tablet inverted-index writes in the insert-overwrite path. #75923 • Skipped an unnecessary remote
    clear_parent_path
    call when a load spill never used remote storage. #76224 • A null-padding size mismatch for missing columns in
    ParquetScanner
    so padded rows match the actual per-batch chunk size instead of the whole Parquet/Arrow batch size. #75981 • Vulnerable, stale transitive dependencies (old BouncyCastle, OkHttp 2.x, Tomcat, and others) that previously shipped alongside their fixed counterparts. #76097 StarRocks/starrocks
  • b

    Beryl Chen

    07/30/2026, 1:45 PM
    Friendly reminder: Our webinar, Real-Time Analytics Has an Update Problem, is happening tomorrow at 10:00 AM PT! yay Save your seat here: bit.ly/4hFi54R <!channel> Join us to see what an update actually costs on columnar storage, why merge-on-read slows every query as updates pile up, and the architecture that keeps data freshness under 5 seconds without impacting query performance — then bring your questions for the live Q&A. Can't join live? Register anyway and we'll send the recording afterward!
    ✅ 5
    🙌 3
    👀 1
    l
    • 2
    • 1
  • k

    Kate Shao-Community Manager

    08/06/2026, 9:29 AM
    [🆕 Blog Post] 🔎 How do you build hybrid search with StarRocks? Real-world AI retrieval rarely relies on vector similarity alone. It often needs to combine semantic search with full-text matching, structured filters, and business-specific ranking. Our latest technical deep dive explores how StarRocks brings these paths together in one Search + OLAP engine. It covers: • Running vector, full-text, and scalar retrieval in a unified query path • Choosing between pre-filtering and post-filtering • Fusing results with RRF, weighted scoring, or custom rerankers • Supporting multimodal lakehouse search with StarRocks and Apache Paimon If you’re building RAG, multimodal search, or AI data-retrieval pipelines, take a look: 👉 Read the blog: medium.com/towards-data-engineering/from-data-lake-to-multimodal-lakehouse-building-hybrid-retrieval-for-ai… What hybrid-search use cases are you working on with StarRocks? We’d love to hear about them in the thread. 👇
    thumbup rocky 2
  • k

    Kate Shao-Community Manager

    08/13/2026, 9:48 AM
    Hi Community, 👋 Are you currently using Postgres? 📊 PostgreSQL is great for transactional workloads—but as data volumes and analytical queries grow, performance can hit a wall. This practical guide shows how to build a real-time CDC pipeline from PostgreSQL to StarRocks using Debezium and Kafka, covering setup, data consistency, and performance testing. 👉 Read the step-by-step guide
    starrocks 2
    👀 1
    ✅ 1
    🙌 1
    c
    • 2
    • 1
  • b

    Beryl Chen

    08/20/2026, 1:45 PM
    Friendly reminder: Our webinar, Unpredictable Queries, Predictable Latency: Architecting Joins for Analytical Agents, is happening tomorrow at 10:00 AM PT! danceml Save your seat here: bit.ly/4wyR2vT <!channel> Join us to see what an analytical agent actually sends to a database, why precomputation can't cover it, and which architectural pieces produce a low-latency join when nothing has been prepared in advance — then bring your questions for the live Q&A! Can't join live? Register anyway and we'll send the recording afterward!
    👀 1
  • k

    Kate Shao-Community Manager

    08/25/2026, 1:46 AM
    Hey everyone! 👋 We’re co-hosting a meetup with TRM Labs in San Francisco🌉 on Sept. 3: Scaling the Data Lake for the AI Era. Rahul Raina, CTO from TRM Labs and Sida Shen, Product Manager from PhoenixAI will share real-world lessons on using StarRocks for petabyte-scale analytics, including architecture, performance, and query optimization. What you can expect: • Real-world lessons from operating analytics at scale • Practical discussion on architecture and performance • Open Q&A with the speakers • Time to connect with data, ML, and infrastructure engineers across the Bay Area If you’re in the Bay Area, we’d love to see you there! 📅 Sept. 3 🕔 500–730 PM 📍 SHACK15, San Francisco 👉 Register here: luma.com/trmlabs-3kox
    r
    • 2
    • 1
  • g

    GitHub

    08/27/2026, 1:40 AM
    Release - 4.0.14 New release published by wangsimo0 4.0.14 Release Date: August 11, 2026 Behavior Changes • A static partition clause in an
    INSERT
    into an Iceberg or Hive table is now validated even when a target column list is given. A clause that names a column which is not a partition column of the table is rejected with a clear error instead of being silently ignored. Every
    INSERT
    shape that was accepted before is still accepted. #76659 •
    ARRAY
    and
    MAP
    constructors now fail with a
    CapacityLimitExceed
    error when the flattened result of a single chunk exceeds the addressable byte limit, instead of silently returning corrupted values that
    CREATE TABLE AS SELECT
    ,
    INSERT
    , or a materialized view refresh could persist. For affected queries, reduce
    chunk_size
    or split the constructor expression. #76419 • Division expressions whose divisor is not constant (for example,
    10 DIV c
    ) are no longer treated as monotonic, which stops unsafe Zone Map pruning from dropping rows that satisfy the predicate. Queries filtering on such an expression may return more rows than in earlier versions; the previous results were incorrect. Monotonic forms such as
    c DIV 10
    still benefit from the pruning. #76744 • On a column with a GIN inverted index,
    NOT MATCH
    no longer returns rows whose value is
    NULL
    , which brings it in line with SQL three-valued logic. Queries that depended on the previous behavior return fewer rows. #75578 • Under
    "compression" = "zstd"
    , flat JSON sub-columns and the synthetic null and offset sub-columns of
    ARRAY
    ,
    MAP
    , and
    STRUCT
    columns are now compressed. They were previously written as raw pages, which could make a ZSTD table larger on disk than the same table compressed with LZ4. Only segments written after the upgrade are affected, so existing tables shrink gradually as their segments are rewritten. #76949 • The Iceberg partition cache is now bounded by memory instead of by entry count, through the new catalog property
    iceberg_partition_cache_memory_usage_ratio
    (default
    0.1
    ), and its footprint is reported in
    /api/memory_usage
    and the minute-level memory logs. Under memory pressure the cache may hold fewer entries than before; raise the ratio to restore the previous footprint. #76165 • FE memory estimation now also counts the internal overhead of maps and collections — per-entry nodes and the backing table — instead of only the sampled keys, values, and elements. Weight-bounded caches such as the Iceberg metadata caches therefore report their true footprint and evict earlier for the same
    *_memory_usage_ratio
    , which lowers FE memory usage but may increase cache misses. #75971 • When the keep-alive GC reaps an expired external scan context — left behind by a Spark or Flink connector reader that died without calling
    close_scanner
    — it now cancels the corresponding pipeline fragment. The buffered scan memory is released within
    keep_alive_min
    plus one GC interval instead of staying pinned until
    query_timeout
    . #76535 • The audit log of a statement forwarded to the Leader FE now records the relations resolved by the Leader, so
    QueriedRelations
    holds fully qualified table names with CTE references excluded, matching what the Leader logs. A Follower falls back to local collection only when the statement ran locally or the Leader did not return the list, for example during a rolling upgrade. #76387 • The
    Operation
    column of
    SHOW ALTER TABLE OPTIMIZE
    now shows a readable description of the optimize operation instead of an internal object address such as
    com.starrocks.sql.ast.OptimizeClause@b5dc069
    . #75948 Improvements • Supported complex types (
    ARRAY
    ,
    MAP
    , and
    STRUCT
    ) in Paimon tables; querying such columns could previously crash the BE. #66784 • Added the
    LAST_REFRESH_TIME
    column to
    information_schema.materialized_views
    and
    SHOW MATERIALIZED VIEWS
    . It reports the data-freshness timestamp used by the
    mv_rewrite_staleness_second
    check, which is distinct from the existing
    LAST_REFRESH_FINISHED_TIME
    (when the refresh job finished running). #71642 • Added the mutable BE configuration item
    object_storage_client_cache_size
    (default
    8
    ), which replaces the hard-coded capacity of the S3 and Azure Blob client caches. #75851 • Metadata refresh of a filesystem-backed external table triggered by
    INSERT ... SELECT
    no longer runs while FE internal metadata locks are held, so slow remote metadata access no longer stalls unrelated work on the same path. #73391 • Multi-statement (multi-table) transaction Stream Load now dispatches all per-table channels before waiting for them, instead of dispatching and waiting for each table in turn, which shortens commit time for CDC pipelines that write many tables under one label. #76715 • Reduced lock contention across the
    INSERT OVERWRITE
    code path by relaxing or shortening the table-level locks held in each phase. #75828 • Error messages for the large-column capacity limit no longer embed internal diagnostics such as the driver address and the operator chain, and the
    Capaticy
    typo in the shared status string is corrected. #76303 • Shared-data Primary Key publish now applies the per-segment delete vectors carried in
    op_write.seg_delvecs
    , so a BE running this version consumes such metadata correctly instead of leaving duplicate primary-key rows live. #76474 • Addressed security vulnerabilities (CVE): upgraded Thrift to 0.24.0 and Netty to 4.1.136.Final, bumped the PostgreSQL JDBC driver to 42.7.12, and removed vulnerable transitive dependencies that shipped alongside their fixed counterparts, namely
    bcprov-jdk15on
    , the end-of-life OkHttp 2.x line,
    avro-ipc
    (which bundles jQuery 1.4.2), and the Jetty client and security jars. #76922 #76555 #76783 #76097 #76270 Bug Fixes The following issues have been fixed: • The query cache could store an incomplete per-tablet result and serve it to later queries, returning wrong results. #77066 #77404 •
    COUNT(DISTINCT)
    on an Iceberg table partitioned by
    bucket()
    returned an over-count when
    enable_bucket_aware_execution_on_lake
    was enabled and the
    GROUP BY
    list was a superset of the bucket column. #76601 • JSON subfield pushdown returned wrong results when two subfield keys of the same column differed only in case (for example,
    get_json_string(c, 'Campaign')
    and
    get_json_string(c, 'campaign')
    ), because the generated column names are resolved case-insensitively. Such collisions are now excluded from the pushdown. #76594 #76593 •
    array_difference
    on integer input computed each adjacent difference in the 32-bit input typ… StarRocks/starrocks
  • g

    GitHub

    08/31/2026, 8:28 AM
    Release - 3.5.21 New release published by yingtingdong Release date: August 28, 2026 Behavior Changes • Reverted the 3.5.20 change that cached Iceberg REST vended-credential tables and kept their credentials fresh: on
    branch-3.5
    , that caching caused
    INSERT OVERWRITE
    transactions against a slow Iceberg REST catalog to stay
    COMMITTED
    but not
    VISIBLE
    for several seconds, because a REST metadata refresh could now run while the planner held a lock that transaction publishing also needs. The caching behavior remains in place on the 4.x line. #77039 • GIN (inverted) indexes on Primary Key tables now read from the correct segment after a column-mode partial update, instead of serving stale index data from the unmodified base segment. #76271 • Audit logs for statements forwarded to the leader FE now record the leader-resolved, fully qualified table relations (with CTEs excluded), instead of the follower's unresolved names. #76387 • `ARRAY`/`MAP` constructor expressions now reject a result whose flattened size exceeds 4 GB instead of silently wrapping around and returning corrupted values. #76419 • Iceberg REST catalogs using OAuth2 client-credentials now self-heal their background token-refresh session after a prolonged failure, instead of leaving the catalog permanently unable to refresh its access token. #76457 • External scan contexts (for example, an abandoned Spark/Flink connector read) now properly cancel their pipeline fragments when reaped as expired, instead of leaving them running. #76535 • External scan plans (Spark/Flink connector reads) now set
    query_delivery_timeout
    , so their
    QueryContext
    no longer waits indefinitely for fragments that will never arrive. #76536 •
    array_difference()
    on integer arrays no longer overflows in 32-bit precision before widening to
    BIGINT
    , fixing incorrect results when the true difference falls outside the
    INT
    range. #76569 • Division expressions with a non-constant divisor (for example,
    10 DIV c
    ) are no longer treated as monotonic, fixing incorrect ZoneMap-based pruning that could return an empty or wrong result. #76744 • The configured compression codec now applies to the synthetic null/offset sub-columns of flat JSON,
    ARRAY
    ,
    MAP
    , and
    STRUCT
    columns, instead of always writing them as uncompressed raw pages. #76949 • Load quorum selection no longer picks a replica in
    DECOMMISSION
    state as the load primary. #77035 • Optimizer rules that rebuild a logical window operator now preserve its
    inputIsBinary
    flag, keeping the binary-input merge optimization for ranking-window pre-aggregation intact. #77058 Improvements • Materialized views no longer force a full-partition refresh when manually set from
    INACTIVE
    to `ACTIVE`; only the metadata version map is cleared during a schema change. #57371 • Improved error messages for large-column-capacity-limit checks by removing internal diagnostics (raw pointers, operator dumps) from the user-facing error, and fixed a typo in the shared status string. #76303 Bug fixes The following issues have been fixed: • Guarded against cyclic view definitions: an
    ALTER VIEW
    that closes a reference cycle (
    v1
    ->
    v2
    ->
    v1
    ) is now rejected with a clear error instead of causing a later
    SELECT
    to recurse forever and crash with
    StackOverflowError
    . #75033 • Forbade pushing an aggregate down through a CASE expression that has a non-null constant ELSE branch, fixing a planning abort (
    IllegalStateException
    ) that could occur once the rule fired. #75037 •
    CTEAnchor
    now prunes correctly when its child is a
    ValueOperator
    . #64491 • Fixed predicate conversion for Paimon: an AND-combined predicate now retains its convertible not-null branch instead of the whole conversion returning null. #66038 • The Arrow Flight prepared-statement schema no longer reports every view column as nullable regardless of its actual
    NOT NULL
    definition, and a related regression that produced wrong nullability for `GROUP BY ROLLUP`/`CUBE`/`GROUPING SETS` key columns has also been fixed. #75684 #76149 • Fixed two statistics bugs: an OR-predicate statistics estimate that always clamped the merged
    nullsFraction
    to
    1
    regardless of the real value, and a column-statistics cache load failure under
    ERROR_IF_OVERFLOW
    when a column's persisted min/max is an empty string. #75864 #76684 • Fixed a bRPC stub cache timer leak that leaked memory over time. #75973 •
    UNNEST
    output struct pruning now uses its input array's subfield group instead of the output's own, fixing a mismatch between the struct type BE materializes and the one FE declares. #76002 • Fixed Arrow Flight Prepared Statement forwarding sending the wrong action-type string when a request is forwarded to a different FE, which caused every ADBC client using prepared statements behind a load balancer to fail. #76310 • Hive
    getTable()
    now reconnects before falling back to
    get_table_req()
    , fixing an intermittent
    out of sequence response
    /
    Unknown table
    error when querying an Iceberg table through a Hive metastore catalog. #76456 • Made catalog-drop existence checks atomic under the write lock, fixing a check-then-act race that could persist a redundant drop record when two drops of the same catalog ran concurrently. #76778 • Fixed
    PipeObservable
    emitting a source event instead of a sink event on a deferred sink notification, which could leave a driver blocked on
    OUTPUT_FULL
    unresponsive. #76782 •
    dictionary_get()
    no longer rejects a non-NULL key when its input column's cached
    has_null
    flag is stale. #76881 • Added the missing
    arrow-compression
    module for Arrow Flight SQL, restoring LZ4/ZSTD codec support for compressed Arrow IPC clients. #76921 • Fixed an OOM in streaming pre-aggregation under memory pressure with spill enabled. #76702 •
    Set
    operators are no longer placed in colocate execution groups, fixing a hang caused by their branches being terminated by a plain local-exchange sink instead of a grouped-execution sink. #77025 • Stopped the query cache from storing incomplete per-tablet results for an aggregation with a
    LIMIT
    , which could return wrong results from the cache. #77066 • An insert-overwrite failure is no longer journaled against a table that was concurrently dropped, fixing an FE crash on journal replay. <https://github.com/StarRocks/starrocks/pull/77… StarRocks/starrocks
  • k

    Kate Shao-Community Manager

    08/31/2026, 11:14 AM
    📚 New Blog: Building a Streaming Lakehouse at Alibaba with Fluss, Paimon, and StarRocks How do you query seconds-fresh streaming data, minute-level lakehouse data, and years of history through one analytical interface? In this production deep dive, Zhu Ao, Senior Data Engineer at Taotian Group, explains how Alibaba combines: • Fluss for seconds-fresh streaming data • Apache Paimon for minute-level and historical storage • StarRocks as the unified, high-performance OLAP query layer The results include an 80%+ reduction in consumer bandwidth and deserialization costs, a 50%+ improvement in development and operational efficiency, and a development and validation cycle shortened from five days to two. 👉 Read the complete architecture breakdown: medium.com/starrocks-engineering/building-a-streaming-lakehouse-at-alibaba-with-fluss-paimon-and-starrocks…
    cool rocky 1
  • b

    Beryl Chen

    09/03/2026, 1:45 PM
    Friendly reminder: Our webinar, Apache Iceberg at Sub-Second Speed: Architecting the Serving Layer, is happening today at 10:00 AM PT! Save your seat here: bit.ly/4qPCMhf <!channel> Eric Sun will be joining Sida Shen live, bringing firsthand perspective from his experience leading Data Platform + Datastores at Coinbase. Together, they’ll explore how to serve sub-second analytics directly on Apache Iceberg, where performance and serving challenges emerge in production, and what it takes to make it work at scale — without bringing back separate serving copies and sync pipelines. Bring your questions for the live Q&A! Can’t join live? Register anyway and we’ll send the recording afterward. cat dance
    🙌 1
    👍 1
  • k

    Kate Shao-Community Manager

    09/08/2026, 5:15 PM
    📣 The Call for Papers for NEXT QUERY 2026 is now open! <!channel> The way we interact with data is changing. What will the next query look like? Who—or what—will ask it? And how will the answer turn into action? That’s the idea behind NEXT QUERY 2026, the Data & AI Infrastructure Summit presented by PhoenixAI. On November 4, data practitioners, engineers, and developers will come together to share how they’re building analytics systems for today—and preparing them for what comes next. This year’s theme is Building the Context for What’s Next. As AI agents enter analytical workflows, better models alone aren’t enough. Every query also needs the right business meaning, knowledge, memory, and governance to produce answers people can trust. We’re expanding beyond a traditional StarRocks community summit and inviting the broader Data & AI community to share practical stories about: • Real-time analytics and data applications • Lakehouse architectures • Performance, scalability, and governance • AI and agentic analytics use cases Whether you’re running StarRocks in production or building the next generation of data and AI systems, we’d love to hear what you’ve learned. 🗓️ Submission deadline: September 18 👉 Learn more and submit your proposal: docs.google.com/forms/…/viewform
    next_query_edited.mp4
    🙌 7
    starrocks 6
    g
    • 2
    • 4