http://starrocks.io logo
Join Slack
Powered by
# announcements
  • 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
    🙌 2
    👍 2
    ✅ 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
    🙌 8
    starrocks 6
    g
    • 2
    • 4
  • k

    Kate Shao-Community Manager

    09/15/2026, 9:17 PM
    Hi everyone! 👋 Before an AI agent queries your Iceberg lakehouse, it needs to know which data and definitions to trust. Explore the roles of Polaris, OpenMetadata, and StarRocks in building trusted context for AI. 📖 Read the article Join us at NEXT QUERY 2026, the Data & AI Infrastructure Summit presented by PhoenixAI, on Nov 4, 2026. We’ll explore how metadata, semantics, lakehouse architecture, and agentic analytics come together to build the context behind every query. Registration is now open! 🎟️ Register for NEXT QUERY
    gratitude thank you 2
  • b

    Beryl Chen

    09/17/2026, 1:45 PM
    Friendly reminder that our webinar, PhoenixAI Anywhere: Sub-Second Analytics on Live Data, Inside Your Own Network, is happening today at 10 AM PT / 1 PM ET. <!here> We’ll show how PhoenixAI runs complex, multi-table SQL on normalized data at sub-second latency, with streaming updates queryable within seconds, and how PhoenixAI Anywhere brings that performance into your own Kubernetes environment, including private and air-gapped deployments with no outbound dependency. The session will also include a walkthrough of the Anywhere Console used to deploy and manage it. If you’ve been curious about what PhoenixAI adds on top of StarRocks or what a self-managed PhoenixAI deployment looks like in practice, this is a good chance to see it live. danceml Save your seat: bit.ly/3TelPAq Can’t join live? Register anyway and we’ll send you the recording afterward.
    🙌 1
    y
    • 2
    • 4
  • g

    GitHub

    09/17/2026, 10:35 PM
    Release - 4.1.3 New release published by kc-phxai 4.1.3<#413|​> Release Date: July 14, 2026 Behavior Changes<#behavior-changes|​> •
    CTAS
    now preserves explicitly declared
    VARCHAR(N)
    column lengths instead of widening them to
    VARCHAR(MAX)
    . Existing tables are unaffected; new tables created with
    CTAS
    will enforce the declared length on subsequent writes. #73498 • Querying
    sys.fe_memory_usage
    or
    sys.fe_locks
    without the
    OPERATE ON SYSTEM
    privilege now returns a clear access-denied error instead of a misleading node-lookup failure. #73567 •
    FILES()
    and broker/stream load no longer apply a session timezone shift to
    INT64
    Parquet timestamps written with `isAdjustedToUTC=false`; those timestamps are now treated as wall-clock values and loaded as-is. Data loaded from such files before v4.1.3 may differ from data loaded after upgrading; reload if consistency is required. #73674 • Successfully committed multi-table transaction stream load jobs are now correctly shown as
    VISIBLE
    in
    information_schema.loads
    and
    SHOW STREAM LOAD
    instead of remaining stuck at
    PREPARING
    . #74386 • Connector incremental scan range scheduling now consistently reuses the deployed fragment's driver layout, preventing scan ranges from being incorrectly assigned to non-existent drivers. #74674 •
    LIKE
    constant-folding now matches MySQL 8 backslash-escape semantics, correcting cases where patterns such as
    'a\\\\b'
    previously returned opposite results. #74814 • Routine Load now supports the
    property.kafka_partition_discovery
    property, which allows partition auto-discovery to continue even when
    kafka_partitions
    and
    kafka_offsets
    are specified to seed exact starting offsets. When
    property.kafka_default_offsets
    is not set, the default starting offset for partitions discovered after the job already has consuming progress changes from
    OFFSET_END
    to
    OFFSET_BEGINNING
    — and this applies to all auto-discovery jobs, not only those using the new property. #74729 • Non-group-by aggregates are now pushed down through
    UNION ALL
    branches before merging, reducing network transfer and memory usage for queries that aggregate over a union. #73930 • IVM maintenance queries are now re-derived from the current view definition at each refresh instead of using the frozen query text stored at
    CREATE
    time; existing MVs automatically benefit from rewriter bug fixes without needing to be recreated. #74881 • Sample-based tablet pre-split now spreads pre-split shards across all compute nodes (
    SPREAD
    placement) instead of packing them onto the source tablet's worker (
    PACK
    placement), improving load parallelism. #75514 •
    ALTER TABLE ... MODIFY COLUMN
    that changes only the column comment now takes the lightweight metadata-only path instead of spawning a full schema-change job, and this now works on Primary Key columns as well. #75325 •
    FLOOR
    and
    CEIL
    are now treated as non-reserved keywords and can be used as column names without quoting. #75241 •
    SHOW FUNCTIONS
    output now always includes the
    isolation
    property (
    shared
    or
    isolated
    ) in the Properties column for UDFs and UDAFs. #75255 • The default value of
    lake_vacuum_min_batch_delete_size
    is raised from 100 to 200, improving vacuum throughput on object storage by batching more stale-file deletions per
    DeleteObjects
    request. #74304 • Iceberg REST catalog tables with vended credentials are now cached and their credentials are refreshed in the background, eliminating per-
    getTable()
    GetDataAccess
    calls that caused AWS Lake Formation rate limiting. #75431 • IVM
    bitmap_union
    ,
    hll_union
    , and
    percentile_union
    aggregate states are now stored once in the materialized view instead of twice (visible column + hidden
    __AGG_STATE_
    column), halving storage for those sketch types. #75760 • Incremental materialized views now support
    bitmap_agg
    ,
    hll_union
    ,
    percentile_union
    , and
    bitmap_union
    aggregate functions, enabling exact distinct-count and sketch-based aggregations to be maintained incrementally. #75587 #75610 • Sample-based tablet pre-split tablet count is now rounded up to the nearest multiple of the active compute-node count for even distribution, and bounded below by a minimum tablet size to avoid excessive fragmentation on small loads. #75360 #75584 Improvements<#improvements|​> • The
    ngram_search
    function now accepts a non-constant needle argument. #74675 • Added an HTTP authentication framework controlled by the
    enable_http_auth
    FE configuration, gating authentication and RBAC enforcement on all external HTTP endpoints. #73822 • Added refresh and placement observability columns (
    refresh_warehouse
    ,
    refresh_resource_group
    ,
    refresh_mode
    ,
    refresh_type
    ,
    last_refresh_details
    ) to
    information_schema.materialized_views
    . #74342 • Added opt-in lazy refresh of the external statistics cache on journal replay, controlled by a new FE config, to prevent a slow or stuck external metastore from stalling FE journal replay or startup. #74371 •
    VARCHAR
    length increase is now allowed on range-distribution (shared-data) sort-key columns via fast schema evolution without a data rewrite. #74698 • Added a stack-trace dump when a shared-data transaction log write exceeds a configurable threshold, making slow
    put_txn_log
    /
    put_combined_txn_log
    calls easier to diagnose. #74704 • Tablet pre-split meta-tier footer readers now support
    DATE
    ,
    DATETIME
    ,
    DECIMAL
    ,
    VARCHAR
    , and ORC
    TIMESTAMP
    sort keys, reducing the number of loads that must fall back to data-tier sampling. #74710 #74739 #74792 #74902 #74955 #75186 #75209 #75427 #75697 • Sample-based tablet pre-split now applies to
    INSERT INTO ... SELECT ... FROM <OLAP table>
    loads, and also to column-list
    INSERT
    statements that include all sort-key columns. #74828 #75345 • Added Adler-32 checksum protection for shared-data tablet metadata and transaction log files, enabling silent corruption to be detected on read. #74924 • Added the
    txn_max_committed_pending_publish_ms
    FE metric per database, reporting the age of the… StarRocks/starrocks
  • b

    Beryl Chen

    10/01/2026, 1:45 PM
    Friendly reminder: our webinar, Architecting Real-Time Customer-Facing Analytics, is happening today at 10 AM PT / 1 PM ET. <!here> We’ll break down where latency builds up between a data change and the answer a user sees, how sustained updates affect write amplification, compaction, and query performance, and what it takes to run fast joins on changing data without pre-joining everything upstream. We’ll also look at how leading companies are running real-time analytics in production, and the architectural requirements that shaped their systems at scale. If you’re serving dashboards or operational applications on constantly changing data—or you’ve had to rework a pipeline just to add another dimension—this session will walk through the trade-offs behind keeping data fresh, queries fast, and pipelines manageable. yay*Save your seat:* bit.ly/4AIwl3Y Can’t join live? Register anyway and we’ll send you the recording afterward.
  • k

    Kate Shao-Community Manager

    10/13/2026, 9:59 PM
    🎉 NEXT QUERY 2026: Our nearly complete agenda and speaker lineup are now live! <!here> Join us on November 4 for a full day of 20+ sessions across two tracks: Context & Intelligence and Systems & Scale. More announcements are coming soon! Hear from StarRocks users at Apple, Coinbase, Intuit, Fresha, Microsoft AI, AppLovin, and more about their real production challenges—and how they solve them. From slow queries and rising costs to competing workloads and fresh data for AI agents, practitioners will share their architectural decisions, tradeoffs, and practical solutions. This year’s theme is “Building the Context for What’s Next”: building data foundations that support today’s analytics and evolve with emerging AI workloads. 📅 November 4 · Virtual · Free 👉 Explore the agenda and register 🎁 Early Bird Giveaway: Ten winners. US$50 each. Register by October 18 at 11:59 p.m. PT for a chance to win one of ten US$50 Visa prepaid cards. Eligible existing registrants are automatically included. Winners will be selected randomly and notified on October 23. The summit is open worldwide. Giveaway eligibility is limited to legal residents of the 50 U.S. states and D.C. who have reached their state’s age of majority. No purchase necessary. One entry per person.
    gratitude thank you 2
    dogdance 3
  • b

    Beryl Chen

    10/15/2026, 1:45 PM
    Friendly reminder: our webinar, PhoenixAI 26.2: More Workloads on Shared-Data and Iceberg, is happening today at 10 AM PT / 1 PM ET. <!here> Sida Shen will walk through what's new in our latest release: vector indexes and incremental materialized views on shared-data clusters, UPDATE and MERGE INTO for Iceberg tables, and changes that cut down on manual tuning, like scan parallelism that no longer depends on tablet count. We'll also cover which defaults change when you upgrade from 26.1 (StarRocks 4.1), and what to check before you do. If you run shared-data clusters or query Iceberg tables in your lakehouse, this session shows which workloads that used to need a different table type, a separate tool, or manual tuning can now run on the same data. danceml There's a live Q&A at the end, so it's a great chance to ask Sida about your own setup, or anything you want to sort out before upgrading. cool rocky Save your seat: bit.ly/47qr9Eu Can't join live? Register anyway and we'll send you the recording afterward.
    🙌 1
    🙌🏼 1
  • k

    Kate Shao-Community Manager

    10/20/2026, 5:31 PM
    🎉 Congratulations to the NEXT QUERY 2026 Early Bird Lucky Draw winners! • Freddy Rodriguez • Mehal Sanghvi • Maytas Monsereenusorn • Matthew Mullins • Raghava • Abbulu Dulapalli • Zhi Zeng • Phaneendra M • Marina Nisar • Gaurav Ahlawat There’s still a chance to win! Refer a friend to NEXT QUERY 2026 for a chance to receive a US$100 Visa prepaid card. 🎁 Know someone who works on data or AI infrastructure? Invite them to join us on November 4 for a free virtual summit featuring production lessons from 20+ teams, including Apple, Coinbase, Intuit, and AppLovin. Here’s how to enter: ✅ Register for free on Luma. Already registered? Head back to the event page. ✅ Get your personal referral link. Click “Invite a Friend” on the event page and copy your unique link. ✅ Share it with friends and colleagues. Each friend who registers through your link earns you one entry, up to three entries total. 🎁 Ten randomly selected winners will each receive a US$100 Visa prepaid card! Winners will be notified on November 5. ⏰ Referrals close November 3 at 11:59 p.m. PT. 📅 November 4 · 9:00 a.m. PT · Free & virtual 👉 Register and invite a friend The summit is open worldwide. Referral giveaway eligibility is limited to legal residents of the 50 U.S. states and D.C. who have reached the age of majority where they live. No purchase necessary. Duplicate registrations and self-referrals do not count.
    next-query-early-bird-us-draw-2x.mp4
  • k

    Kate Shao-Community Manager

    10/28/2026, 6:33 PM
    ⏳ 7 days until NEXT QUERY 2026! <!here> Join us on November 4 to learn how speakers from Apple, NVIDIA, Cisco, AppLovin, Fresha, Intuit, Coinbase, Kimi and more scale real-time analytics and prepare for what’s next in the AI era. 👉 Explore the full speaker lineup and agenda Join our StarRocks AMA after the sessions! 📅 November 4: 3:40 PM PT / 6:40 PM ET / 11:40 PM London 📅 November 5: 7:40 AM Beijing/8:40 AM KST Bring your questions about StarRocks architecture, query performance, operations, migration, or lessons from production. Caught the talks earlier in the day? Stay and join us in the lounge. Just coming for the AMA? You’re welcome, too! 💬 Submit your questions in advance 🎁 A quick reminder: Refer a friend for a chance to win a US$100 Visa prepaid card! Check the previous thread for details on how to refer a friend and enter the lucky draw.
    yay 5
    cool rocky 3
  • g

    GitHub

    11/03/2026, 3:51 AM
    Release - 4.1.2 New release published by kc-phxai 4.1.2 Release Date: June 18, 2026 Behavior Changes • Connecting to a database that the user has no privilege on now returns a proper MySQL error packet instead of closing the connection with ERROR 2013. #70072 •
    SHOW FUNCTIONS
    now masks UDF file and object-file paths as
    ***
    for users who can see a function through function-level privileges but do not hold the create-function scope privilege. #73425 • Ranger row filter and column masking policies are now correctly applied when querying Hive views from external catalogs. #73265 •
    ALTER TABLE ... ADD COLUMN ... DEFAULT current_timestamp
    now correctly preserves the
    current_timestamp
    generator expression.
    DESCRIBE
    and
    information_schema
    now reflect the expression rather than the backfill-time literal. #73455 •
    information_schema.loads
    load-time filtering no longer shifts filter bounds on clusters whose session timezone differs from UTC+8. Load times are now exchanged as UTC epoch milliseconds across the FE–BE boundary. #73365 • The
    connector_max_split_size
    session variable now correctly applies to Paimon scan split calculation instead of always using the default value. #71756 •
    pipeline_enable_large_column_checker
    is now enabled by default. #72798 • Hive partition statistics are no longer refreshed automatically per key on a timer. Partition stats are now only refreshed during explicit
    refreshTable()
    calls, reducing HMS load on large partitioned tables. #73563 • When an Iceberg or external-catalog base table undergoes schema drift (column type change, column drop, or table drop), the dependent materialized view is now marked inactive at the next refresh instead of silently producing NULL rows or opaque errors. #73770 • The Iceberg connector now partially pushes down the convertible side of
    AND
    compound predicates instead of discarding the entire predicate when only one side is convertible, improving partition pruning and data skipping. #70293 • Explicit-transaction
    COMMIT
    now correctly waits up to
    query_timeout
    seconds (not milliseconds) for the database write lock, preventing spurious lock-timeout failures under brief concurrent write activity. #73549 • IVM refresh now surfaces strict-load filter errors to the caller instead of silently dropping filtered rows. #73938 •
    count_combine(nullable_col)
    now correctly excludes NULL rows, matching
    COUNT(col)
    semantics. Incremental MVs backed by
    COUNT(<nullable column>)
    were previously materializing inflated counts. #74029 •
    SHOW ALTER TABLE COLUMN
    now also displays asynchronous metadata-only alter jobs triggered by
    ALTER TABLE ... SET (...)
    for properties such as
    file_bundling
    and
    enable_persistent_index
    on cloud-native (shared-data) tables. #74198 • Creating an incremental MV with a
    HAVING
    clause that references an aggregate function now fails at
    CREATE
    time with a clear error instead of producing an internal plan error on first refresh. #74054 • IVM now supports `MIN`/`MAX(DECIMAL)` aggregate functions in incremental materialized views. #73969 • IVM adaptive refresh now correctly bounds the delta window when the first delta trait already exceeds
    mv_max_rows_per_refresh
    , preventing the entire backlog from being refreshed in one task run. #74464 • GROUP-BY-only incremental MVs (for example,
    SELECT k FROM t GROUP BY k
    ) now correctly encode
    __ROW_ID__
    as VARCHAR, fixing a crash on the second refresh. #74030 Improvements • Supports Paimon views, including `CREATE`/`REPLACE`/`DROP`, `SHOW`/`DESC`, and querying Paimon views from external catalogs. Table references inside Paimon views are now resolved against the Paimon catalog instead of
    default_catalog
    . #56058 #70217 • Supports an explicit
    schema
    parameter in
    FILES()
    for stable schema control when reading files with schema drift or complex nested types. #72033 •
    get_query_profile()
    now retrieves query profile information across all FE nodes, not only the connected FE. #71123 • Added the
    query_id()
    built-in function, which returns the UUID of the currently executing query. #73621 • `CREATE`/`ALTER STORAGE VOLUME` in shared-data mode now validates storage location accessibility (credentials and endpoints) before persisting metadata, failing early on misconfiguration. #70053 • Added
    WebIdentity
    token provider support for AWS S3 credentials in BE, matching the existing FE support for
    AWS_S3_USE_WEB_IDENTITY_TOKEN_FILE
    . #69966 • Added the
    ADMIN SKIP COMMITTED TRANSACTION
    command to unblock stuck
    COMMITTED
    transactions on shared-data tables when publish is permanently blocked by missing
    txnlog
    , lost segments, or slow remote I/O. #73553 •
    information_schema.tables_config
    now pushes down
    table_name
    predicates to the FE, greatly reducing overhead for single-table lookups. #73210 • Added missing MySQL 8 columns to
    information_schema
    tables to improve compatibility with BI tools and JDBC drivers that inspect MySQL 8 schemas during connection introspection. #73370 • Added the
    enable_pipeline_event_scheduler
    BE configuration as a cluster-wide kill switch that overrides the per-session variable when set to
    false
    . #73264 • Added opt-in wide-string column isolation for statistics collection to reduce per-query memory peaks when collecting statistics on tables with multiple wide string columns. #73258 • Slow-lock logging now supports per-event rate limiting and configurable stack-capture controls to prevent JVM safepoint stalls under high lock contention. #73647 • MV refresh log entries now include the database name in the prefix, making log lines distinguishable in multi-tenant deployments where the same MV name exists in multiple schemas. #73521 •
    enable_profile_log
    FE configuration is now mutable and can be toggled at runtime via
    ADMIN SET FRONTEND CONFIG
    without an FE restart. #73894 • Added the
    enable_print_load_profile_to_log
    FE configuration (default
    false
    ) to write load profiles (stream load, routine load, broker load, and merge-commit load) to
    fe.profile.log
    , preserving them even when the in-memory store is evicted by query-profile bursts. #74150 •
    SHOW ROUTINE LOAD
    now correctly renders column mappings in
    JobProperties
    instead of Java object references. <https://github.com/StarRo… StarRocks/starrocks
  • g

    GitHub

    11/03/2026, 3:51 AM
    Release - 4.1.4 New release published by kc-phxai 4.1.4 Release Date: August 5, 2026 Behavior Changes • In shared-data mode, the
    TABLESAMPLE
    /
    SAMPLE
    clause and
    ANALYZE SAMPLE TABLE
    now take effect on lake tables. Previously the sample options never reached the BE, so a full scan was performed. #71874 •
    ALTER TABLE
    changes to the
    flat_json
    configuration are now propagated to BE nodes through a versioned task so they take effect reliably. #74747 •
    NOT MATCH
    predicates answered by a GIN inverted index no longer return NULL rows; NULL rows are now correctly excluded from the result. #75578 •
    ANALYZE ... UPDATE HISTOGRAM ON
    no longer computes histograms for char-family columns (which the optimizer does not use) and computes only MCVs, reducing analyze cost. #75968 •
    rewrite_manifests
    now clusters output manifests by order-preserving partition ranges, producing tighter per-manifest partition bounds and better manifest pruning on tables with many partitions. #76193 • Multi-table stream load now honors each table's
    file_bundling
    property when deciding whether to use a combined transaction log, instead of following only the global
    lake_use_combined_txn_log
    config. #76806 • A GIN inverted index combined with column-mode partial update on a Primary Key table no longer returns corrupted results; the index is now served from the delta column group segment. #76271 •
    array_difference
    on integer arrays now computes adjacent differences in 64-bit before widening to
    BIGINT
    , fixing int32 overflow. #76569 • Division expressions with a non-constant divisor are no longer treated as monotonic, fixing incorrect ZoneMap pruning that could produce wrong results. #76744 • Array and map constructors now raise an error instead of silently corrupting data when the flattened result of a chunk exceeds 4 GB. #76419 • Primary Key inserts now correctly reject keys that already exist in the L1/L2 persistent index; the existence check was previously skipped. #76591 • Sample-based tablet pre-split on range-colocate tables now spreads new shards across compute nodes instead of packing them onto the source tablet's worker, fixing range batch imports that were roughly 3x slower than hash. #76608 • Incremental-or-AUTO materialized views now rebuild the maintenance query for the PCT fallback in
    AUTO
    refresh mode, fixing refresh failures for shapes that IVM does not support. #75961 •
    ALTER MATERIALIZED VIEW ... ACTIVE
    now works for non-aggregate INCREMENTAL materialized views; the storage-filled
    __ROW_ID__
    column is kept out of the MV DDL column list so an inactive IVM can be re-activated. #77017 • The Iceberg partition cache is now bounded by memory (not just entry count) and its usage is exposed, preventing unbounded growth on tables with many partitions. #76165 • Iceberg REST catalogs using OAuth2 client credentials now self-heal after the background token-refresh task dies, instead of failing all subsequent requests. #76457 • Lake full vacuum now reclaims orphaned
    .lcrm
    (Lake Compaction Rows Mapper) files that were previously skipped. #76522 • Shared-data publish now refuses to write a bundle tablet metadata file that is missing tablets, preventing a partition from getting permanently stuck on publish. #76850 • Abandoned external (Spark/Flink connector) scan contexts now cancel their pipeline fragments when reaped, and external scan plans set
    query_delivery_timeout
    to bound the QueryContext lifetime. #76535 #76536 • Materialized view pinned-range maps are now keyed correctly (by table UUID), fixing MV bootstrap pinning being disabled for OLAP tables and mishandling of same-named tables in different databases. #76320 #76351 • Audit logs for statements forwarded to the leader FE now record fully-qualified queried relations (matching the leader) instead of CTE aliases and unqualified table names. #76387 • Aggregating a full
    STRUCT
    column together with
    ROLLUP
    ,
    CUBE
    , or
    GROUPING SETS
    no longer fails at plan time with a
    usedStructFiledPos
    error. #76804 • The FE memory
    Estimator
    now counts container overhead, and the Parquet scanner now pads missing columns using the bounded chunk size instead of the full batch size, improving memory accounting accuracy. #75971 #75981 Improvements • Added support for an
    INCLUDE METADATA
    clause in Routine Load to expose Kafka/Pulsar message metadata (such as partition, offset, and timestamp). #73840 • Made the Routine Load metadata alias optional. #76294 • Added a
    LAST_FRESHNESS_CONFIRMED_AT
    column to
    information_schema.materialized_views
    . #74585 • Exposed data cache metrics through the
    /metrics
    endpoint, and added FE compaction metrics,
    ALTER TABLE
    column-operation metrics and durations, and a
    CompressedInputBytes
    metric on the exchange sink. #58204 #72941 #76247 #76309 • Exposed authentication and connectivity error details from connector metadata operations to end users. #75490 • Improved error messages for large-column capacity limit checks. #76303 • Added the
    hdfs_backend_selector_cache_replica_num
    variable, and made the object storage client cache size runtime mutable. #75023 #75851 • Extended sample-based tablet pre-split meta-tier readers to more sort-key types, including
    CHAR
    , composite sort keys, and UTC-adjusted Parquet
    TIMESTAMP
    / ORC
    TIMESTAMP_INSTANT
    . #75937 #76011 #76114 • Improved external-table statistics collection: predicate column usage is now tracked, multiple columns are collected in a single scan, and a bounded-cost scan budget is applied for Iceberg tables. #75938 #76638 #76549 • Supports right-outer, semi, anti, and full-outer range-colocate joins. #76040 • Optimized Query Queue V2 cost estimators. #76609 • Pushed t… StarRocks/starrocks
  • g

    GitHub

    11/03/2026, 3:51 AM
    Release - 4.1.6 New release published by kc-phxai 4.1.6 Release Date: September 30, 2026 Behavior Changes • The default HTTP client for the AWS SDK is switched from Poco back to the SDK's own client:
    enable_poco_client_for_aws_sdk
    now defaults to
    false
    . Set it to
    true
    to restore the previous behavior. #78375 • Online optimize table is now opt-in: the FE configuration
    enable_online_optimize_table
    defaults to
    false
    , so
    ALTER TABLE ... DISTRIBUTED BY ...
    again blocks writes unless the config is turned on. #78206 • jemalloc's dedicated oversize arena is enabled by default, so large allocations no longer land in the per-CPU arena of the calling thread. This improves reuse of large buffers and reduces fragmentation, and changes how BE and CN memory is distributed across arenas. #78396 • Shared-data tablet metadata and transaction log files are now written with an Adler-32 checksum by default (
    lake_enable_protobuf_file_checksum
    ), so corruption is detected on read. Readers already verified the checksum whenever a file carried one, so no downgrade step is needed. #75334 • A shared-data primary-key load that mixes
    UPSERT
    and
    DELETE
    rows for the same key now preserves their in-transaction order by default (
    lake_enable_pk_preserve_txn_delete_order
    ). #76211 • Multi-table transactions now participate in shared-data batch publish instead of publishing one transaction at a time, which removes the serialization that CDC micro-batches fanning out to many tables used to hit. #77029 • A shared-data partition now advances straight to the final version of a batch publish instead of through each intermediate version, so a query can no longer request an intermediate version that has no tablet metadata object, which surfaced as
    The specified key does not exist
    . #79175 • A shared-data publish that keeps failing now backs off and throttles its retry logging instead of emitting the
    previous publish version task has not finished
    message on every attempt, which could dominate the FE leader's CPU and log volume during an incident. #79299 • Del-file tombstone rows now count toward
    cloud_native_pk_index_rebuild_rows_threshold
    , so a delete-heavy shared-data workload triggers the primary-key index early flush it was supposed to. #76222 • A shared-data column-upsert publish that supersedes its own segments now merges the delete vector, which previously could leave two live rows for one primary key. The damage only surfaced much later, when a CN restart rebuilt the persistent index and reported
    insert found duplicate key
    . #78797 • The shared-data primary-key index compactor no longer stops silently while the flush side keeps producing sstables, which left a tablet whose persistent index grew without bound. #78812 • HDFS files are no longer `hsync`ed before they are closed. The
    hsync
    was a workaround for a crash that a separate change had already fixed, and it forced an
    fsync()
    on every DataNode replica on each close. #78864 • A Parquet
    null_count
    that under-reports NULLs is no longer taken at face value during decoding and pruning. Files written by older parquet-mr versions previously returned corrupted values or dropped rows. #78329 • List partition pruning of
    !=
    ,
    NOT IN
    , and
    IS NOT NULL
    no longer discards a multi-value partition just because its value list also contains
    NULL
    . Queries on such a table, including joins that derive
    IS NOT NULL
    on the join key, return the non-null rows that were previously lost. #78946 • Batch DDL can now build date range partitions that start at year
    0000
    , which is a legal
    DATE
    value. Such a statement previously failed with
    the range of the partition is invalid
    . #78746 •
    max_partitions_in_one_batch
    and the partition-number limit now count the partitions the request in hand is about to create. An oversized batch is rejected up front instead of being admitted and only failing the following batch. #79379 •
    TRUNCATE TABLE <external_catalog>.<db>.<table>
    now checks the
    DELETE
    privilege against the catalog named in the statement instead of the session's current catalog. A user who was previously allowed through may now be denied, and vice versa. #79047 • Streaming aggregation tuning is now driven by the group-by cardinality instead of the rows left after
    HAVING
    , so a query whose
    HAVING
    clause filters most groups away no longer loses its local pre-aggregation. #79064 • Audit log rows now carry
    scanBytes
    ,
    scanRows
    ,
    returnRows
    ,
    cpuCostNs
    , and
    memCostBytes
    for DML that targets an external Iceberg or Hive table or the
    FILES()
    table function, and for asynchronous materialized-view refreshes. These fields previously reported
    0
    . #74072 #74954 • The query profile and
    EXPLAIN ANALYZE
    now report the plan a retried query actually ran, rather than the plan from the first attempt. #79225 • A Broker Load no longer writes its submit-time snapshot of
    enable_tablet_pre_split
    back onto the submitting client's live session variable. #79177 •
    ALTER MATERIALIZED VIEW ... ACTIVE
    works again for non-aggregate incremental materialized views; the storage-filled
    __ROW_ID__
    column is kept out of the materialized-view DDL column list. #77017 • 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 • A column that is missing from the tablet schema no longer aborts the BE during predicate push-down; the predicate is simply not pushed down. #79234 • When
    OlapTableSink
    initialization fails, the partially initialized sink is no longer taken through the full close path, which could dereference state that was never created and abort the BE. The original initialization error is returned instead. #79370 • Short key index page geometry is now validated without 32-bit overflow, so a corrupted page footer is rejected instead of wrapping and causing a heap out-of-bounds write. #79048 • An HTTPS request whose TLS handshake times out is no longer treated as connected and retried on the same socket. A stalled request now fails after approximately one timeout instead of
    connect_timeout
    plus two receive timeouts. #79369 Improvements • LDAP and Active Directory groups can now be resolved from the user's
    memberOf
    attribute, so a new directory group no longer requires a matching group-provider configuration on the cluster. #79254 • The audit log now records the query's error message, not just the coarse `Err… StarRocks/starrocks
  • g

    GitHub

    11/03/2026, 3:51 AM
    Release - 4.1.7 New release published by kc-phxai 4.1.7 Release Date: October 26, 2026 Behavior Changes • Local (shared-nothing) Primary Key inserts no longer check the immutable L1 and L2 persistent-index files for duplicate keys by default. The new BE configuration
    skip_pindex_l1_l2_check_in_insert
    defaults to `true`; L0 (memtable) checks are always performed. Set it to
    false
    to restore the previous behavior. #81304 • BE JVM metrics are enabled by default (
    enable_jvm_metrics
    now defaults to
    true
    ). They are collected only once a JVM exists, so enabling them no longer starts a JVM on a BE that does not otherwise need one. #81113 #81074 • The default of
    spill_max_dir_bytes_ratio
    is lowered from
    0.8
    to
    0.5
    , so spill uses at most 50% of each spill directory's capacity. #80189 • Lake replication file copies now run in a dedicated CN-wide pool.
    lake_replication_file_copy_threads
    defaults to
    16
    instead of
    0
    (which meant 4 × CPU cores), and the new
    lake_replication_max_parallel_files_per_tablet
    (default
    4
    ) bounds the files copied in parallel for one tablet. #78078 • Delete-triggered base compaction of shared-data Primary Key tablets is now opt-in through the new BE configuration
    lake_pk_compaction_base_enable_delete_trigger
    , which defaults to
    false
    . #79926 • When
    pk_index_parallel_execution_threadpool_max_threads
    is
    0
    , the Primary Key index parallel execution pool is sized to all CPU cores instead of half of them. #80460 •
    CAST(x AS CHAR(N))
    now truncates the result to
    N
    characters, consistent with MySQL. Both constant folding in the FE and execution in the BE apply the truncation. #75909 • Credential values are masked wherever configurations and task definitions are displayed or logged:
    ADMIN SHOW FRONTEND CONFIG
    , the FE
    /variable
    page, BE
    /varz
    ,
    information_schema.be_configs
    , task run definitions archived to
    task_run_history
    , and the request URIs and headers written to FE and BE HTTP logs. Values set through
    ADMIN SET FRONTEND CONFIG
    , the FE
    /api/_set_config
    endpoint, and the BE
    /api/update_config
    endpoint are masked as well. #80097 #80040 #80492 #80444 #80280 #80447 #80515 #80203 • The FE HTTP endpoints
    /service_id
    ,
    /dump
    , and
    /dump_starmgr
    now require an admin user. #80749 #80701 Improvements • Added the table property
    enable_statistic_auto_collect
    . Set it to
    false
    with
    CREATE TABLE
    or
    ALTER TABLE
    to exclude a table from automatic statistics collection. Collection triggered by data loading is not affected. #81027 • LDAP and Active Directory user and group names can be matched case-insensitively by setting the new FE configuration
    authentication_ldap_case_insensitive
    to
    true
    (default
    false
    ). #79255 • Added
    ALTER GROUP PROVIDER
    to update the properties of a group provider in place. #79166 • Under Query Queue V2,
    query_queue_mem_used_pct_limit
    is applied to every node that runs queries. #81026 • Large Primary Key index deletes during publish are faster, using a parallel reverse lookup and a tombstone sstable path. #76785 • A searched
    CASE WHEN
    evaluates each branch only on the rows that reach it. #79484 •
    convert_tz
    caches daylight-saving-time offset lookups instead of converting the time zone for every row. #78459 •
    UNNEST
    is zero-copy for nullable arrays and with
    LEFT JOIN
    , expands multiple arrays one chunk at a time instead of materializing the whole input chunk, and the remaining table functions are guarded against out-of-memory. #79221 #79222 • A fragment's plan is serialized once for all of its instance requests. #80716 • Colocate aggregation and window functions can be planned on range-colocate tables. #79946 • Backported tablet pre-split improvements from the main branch, including new FE configurations that bound how much data the sample-based tablet pre-split scans (
    tablet_pre_split_data_tier_scan_byte_limit
    ,
    tablet_pre_split_data_tier_min_scan_files
    ,
    tablet_pre_split_data_tier_max_scan_files
    , and
    tablet_pre_split_meta_tier_footer_read_parallelism
    ). #79949 Security • Bumped pprof to release/20261012. #80439 • Bumped lz4-java to 1.11.4. #80319 • Bumped BouncyCastle to 1.86, Jackson to 2.21.7, zstd-jni to 1.5.7-15, and Parquet to 1.18.1. #80248 • Bumped the Tomcat used by Broker to 9.0.121. #79719 • Bumped ZooKeeper to 3.8.7 and 3.9.6. #79707 • The arguments of
    lookup_string
    are escaped to prevent SQL injection, and its internal query runs with the caller's identity. #79991 #79959 • The FE web console HTML-encodes admin- and host-provided values and table cells, including on the
    /system
    and
    /query
    pages, and validates and encodes the
    node
    parameter on
    /proc_profile
    . #80656 #80639 #80582 #80565 #80689 Bug Fixes The following issues have been fixed: • Iceberg equality deletes were not scoped to their partition. #81139 • Datacache memory writes could be rejected by the eviction probability even when free space was available. #80542 • Bucket properties were not carried along with the partition type of a pipeline source. #80099 • Bucket shuffle join inputs that the sender had already aligned were re-partitioned. #79769 • Driver partitioning was not aligned across `EXCEPT`/`INTERSECT` and hash join inputs. #78920 •
    yearweek
    crashed the BE on invalid
    str_to_date
    input. #78358 • A queued spill data task could still run while the spill channel was closing. #80252 • Lake compaction read buffers were not bounded by the per-worker memory budget. <https://github.com/StarRocks/starrocks/p… StarRocks/starrocks
  • g

    GitHub

    11/03/2026, 9:23 AM
    Release - 4.0.16 New release published by starrocks-bot[bot] 4.0.16 Release Date: September 30, 2026 Behavior Changes • The default HTTP client for the AWS SDK is switched from Poco back to the SDK's own client:
    enable_poco_client_for_aws_sdk
    now defaults to
    false
    . Set it to
    true
    to restore the previous behavior. #78375 • jemalloc's dedicated oversize arena is enabled by default, so large allocations no longer land in the per-CPU arena of the calling thread. This improves reuse of large buffers and reduces fragmentation, and changes how BE and CN memory is distributed across arenas. #78396 • A shared-data transaction whose combined txn log was not fully written is now refused at commit instead of committing and then failing publish forever with
    txn log list does not contain txn log of tablet
    .
    replication_num
    no longer weakens the shared-data write quorum. #78162 • A shared-data partition now advances straight to the final version of a batch publish instead of through each intermediate version, so a query can no longer request an intermediate version that has no tablet metadata object, which surfaced as
    The specified key does not exist
    . #79175 • A shared-data publish that keeps failing now backs off and throttles its retry logging instead of emitting the
    previous publish version task has not finished
    message on every attempt, which could dominate the FE leader's CPU and log volume during an incident. #79299 • A shared-data load cancelled by a user error now reports that error instead of the derived
    AsyncDeltaWriter has been closed
    . #78632 • HDFS files are no longer `hsync`ed before they are closed. The
    hsync
    was a workaround for a crash that a separate change had already fixed, and it forced an
    fsync()
    on every DataNode replica on each close. #78864 • A Parquet
    null_count
    that under-reports NULLs is no longer taken at face value during decoding and pruning. Files written by older parquet-mr versions previously returned corrupted values or dropped rows. #78329 • List partition pruning of
    !=
    ,
    NOT IN
    , and
    IS NOT NULL
    no longer discards a multi-value partition just because its value list also contains
    NULL
    . Queries on such a table, including joins that derive
    IS NOT NULL
    on the join key, return the non-null rows that were previously lost. #78946 • Batch DDL can now build date range partitions that start at year
    0000
    , which is a legal
    DATE
    value. Such a statement previously failed with
    the range of the partition is invalid
    . #78746 • Serialized datetime partition bounds now keep their microseconds. An operator-precedence error previously added the fractional seconds to the shift distance instead of the shifted value, corrupting the bound and potentially blocking metadata replay. #78922 •
    max_partitions_in_one_batch
    and the partition-number limit now count the partitions the request in hand is about to create. An oversized batch is rejected up front instead of being admitted and only failing the following batch. #79379 • Streaming aggregation tuning is now driven by the group-by cardinality instead of the rows left after
    HAVING
    , so a query whose
    HAVING
    clause filters most groups away no longer loses its local pre-aggregation. #79064 • Audit log rows now carry
    scanBytes
    ,
    scanRows
    ,
    returnRows
    ,
    cpuCostNs
    , and
    memCostBytes
    for DML that targets an external Iceberg or Hive table or the
    FILES()
    table function, and for asynchronous materialized-view refreshes. These fields previously reported
    0
    . #74072 #74954 • Internal queries issued while filling
    information_schema.materialized_views
    and
    SHOW MATERIALIZED VIEWS
    are now bounded by the outer statement's
    query_timeout
    instead of
    statistic_collect_query_timeout
    (default one hour), so such a statement can no longer hang far past its own timeout. #77585 • SQL blacklist verification no longer holds a global read lock while matching, so an expensive pattern or a concurrent `ADD`/`DELETE SQLBLACKLIST` no longer stalls every query at the SQL entry point. #78476 •
    paimon.option.cache-enabled = false
    disables the Paimon metadata cache again. #78271 • The background metadata refresh for a Paimon catalog now visits only tables that were recently accessed and have changed, instead of enumerating and reloading the whole warehouse every cycle. A table that StarRocks has never queried is no longer refreshed. #78057 • A
    VARCHAR
    column of a Paimon table now reports the length declared in the Paimon schema instead of an incorrect one. #68383 •
    ALTER TABLE ... RENAME
    on an Iceberg REST catalog no longer fails with a
    NullPointerException
    . #76498 • Reading the
    $partitions
    metadata table of an Iceberg table with a
    DECIMAL
    partition field, or with a null
    timestamptz
    partition value, no longer fails with a
    NullPointerException
    . #77742 • A table with many stale partitions no longer reports a statistics health pinned near
    1.0
    , so auto-ANALYZE is triggered when it should be. Tables that were previously considered healthy may now be re-analyzed. #76927 • A column whose name contains a special character such as
    #
    no longer fails the low-cardinality dictionary collection query with a `ParsingException`; the generated alias is quoted. #77132 • A
    GROUPING SETS
    aggregation joined to another one on its group-by keys no longer fails at planning with
    no executable plan for this sql
    . #77296 •
    encode_sort_key
    now expands a constant argument once per row instead of writing the single stored element into every row buffer. #77847 • A statement forwarded to the Leader FE now keeps its original SQL text in the audit log and the query profile, instead of a form rebuilt from the AST. #77982 • A connection ID that wraps the 24-bit per-FE counter no longer collides with a live connection, which previously hid the older session and drifted the global and per-user connection accounting. #78217 • A column that is missing from the tablet schema no longer aborts the BE during predicate push-down; the predicate is simply not pushed down. #79234 • When
    OlapTableSink
    initialization fails, the partially initialized sink is no longer taken through the full close path, which could dereference state that was never created and abort the BE. The original initialization error is returned instead. #79370 • Short key index page geometry is now validated without 32-bit overflow, so a corrupted page footer is rejected instead of wrapping and causing a heap out-of-bounds write. <https://github.com/StarRocks/star… StarRocks/starrocks
  • g

    GitHub

    11/03/2026, 9:27 AM
    Release - 4.0.17 New release published by starrocks-bot[bot] 4.0.17 Release Date: October 24, 2026 Behavior Changes • Credential values are now masked in the BE
    /varz
    endpoint,
    information_schema.be_configs
    , the FE
    ADMIN SHOW FRONTEND CONFIG
    output and
    /variable
    endpoint, BE HTTP request logs, and the values echoed back by BE
    /api/update_config
    , BE
    /api/_set_config
    , and
    ADMIN SET FRONTEND CONFIG
    . #80040 #80097 #80203 #80280 #80444 #80492 • Sensitive query parameters are no longer written to the request URIs that the HTTP layer logs, and request URIs are sanitized with the same query parser as the actions that serve them. #80515 #80461 • Values shown in the FE web console (shared table renderer,
    /query
    ,
    /system
    , and admin- and host-provided values) are now HTML-encoded, and the
    /system
    page looks up the raw proc path. #80565 #80582 #80639 #80648 #80656 • The FE
    /dump
    ,
    /dump_starmgr
    , and
    /service_id
    endpoints now apply an admin check. #80701 #80749 •
    lookup_string
    now runs its internal query with the caller's identity and escapes its arguments to prevent SQL injection. #79959 #79991 • The tablet metadata dump endpoint
    /api/cloudnative/dump_tablet_metadata
    is restricted to metadata already present in the local cache of the selected CN. #78449 • The default value of the BE configuration
    spill_max_dir_bytes_ratio
    is lowered from
    0.8
    to
    0.5
    , so spill on a disk shared with
    storage_root_path
    is limited to 50% of the disk capacity. #80189 • Explicit
    CAST(x AS CHAR(N))
    now truncates the result to the first
    N
    characters, consistent with MySQL. #75909 •
    yearweek(str_to_date('0000-01-00', '%Y-%m-%d'))
    and similar inputs with a zero month or day now return
    NULL
    instead of crashing the BE in ASAN/debug builds. #78358 • A
    SHOW
    statement whose
    LIMIT
    offset is past the end of the result now returns no rows. #79764 •
    SHOW ALTER TABLE OPTIMIZE ... ORDER BY
    now resolves the column against the columns of its own result instead of those of
    SHOW ALTER TABLE COLUMN
    . #79687 •
    SHOW
    statements backed by proc directories now check that each row's width matches the column headers. #79619 •
    sys.fe_memory_usage
    is now populated by collecting memory usage when queried instead of reading an empty map. #79809 •
    COM_STMT_CLOSE
    now reads the statement ID in little-endian order, so closed prepared statements are released from the connection instead of being retained. #79860 • A
    custom_query_id
    set through a
    SET_VAR
    hint is now recorded in the audit log. #79871 • NGRAMBF pushdown is disabled for
    NOT
    , so
    NOT LIKE
    no longer drops pages that satisfy the predicate. #79243 • The transaction stream load endpoint now rejects a non-boolean
    partial_update
    header instead of treating it as
    false
    . #79350 • A non-positive
    compact_threads
    value is now rejected instead of crashing the CN. #79641 • Dropping a Primary Key tablet no longer increments
    primary_key_table_error_state_total
    . #79558 • With
    enable_short_circuit
    , a point lookup whose
    IN
    list repeats a key now returns the row once. #80318 • Bloom filter columns of unsupported types are now rejected when the column type is changed, instead of failing the schema change later. #80871 • An analyze job now keeps collecting the remaining tables after one table fails, instead of ending the round at the first failure. #81028 • Materialized view (MV) behavior changes:
    lastRefreshTime
    is logged instead of recomputed on replay; the version-map repair is no longer skipped by the physical partition id lookup; list-partition drift is compared against the live table; MV partitions that outlived a dropped base partition are refreshed; the legacy MV task
    postRun
    is ignored during refresh; and adaptive partition refresh supports cloud-native tables. #78467 #78469 #78470 #79057 #79943 #80270 • GCS Broker Load with an inline service account key now works with gcs-connector 3.x. #78649 • Failed multi-table transaction stream load commits now report their errors correctly. #80351 • The LDAP group provider stays usable after an FE restart and when Active Directory returns referrals. #80361 • A broken Ranger audit configuration no longer fails catalog access, and the ZooKeeper classes that Solr audit needs are shipped with the FE. #81075 #77294 • Standalone vector index files are now copied during rowset migration. #80391 • Peer cache data is now copied to the output when
    datacache_block_buffer_enable
    is
    false
    , and memory cache writes into free space are accepted regardless of the evict probability. #80438 #80542 • Primary Key compaction no longer overflows the row source mask when there are more than 32,767 sources. #80472 • Internal statistics DML now binds its own context, so
    DROP STATS
    in an external catalog session no longer reports
    Unknown database '_statistics_'
    . #80473 • Driver capacity is now reserved before drivers and operators are instantiated, so a fragment that exceeds the limit is rejected before it allocates them. #80495 •
    hasDelete
    is now restored when visible DELETE transactions are applied. #80592 • The FE brpc client now uses
    com.starrocks:jprotobuf-rpc-core
    , so an
    OutOfMemoryError
    no longer leaves event loops dead and makes
    exec_plan_fragment
    requests wait for their full timeout. #80684 • Heavy express… StarRocks/starrocks
  • s

    Sida Shen

    11/03/2026, 11:30 PM
    <!channel> I'm hosting a StarRocks AMA tomorrow right after the NextQuery sessions. A few of our engineers will be in the Social Lounge taking questions. Send questions ahead of time here: docs.google.com/forms/…/viewform NextQuery: nextquery.phoenixdata.ai Nov 4, 3:40 PM PT / 6:40 PM ET / 11:40 PM London Nov 5, 7:40 AM Beijing / 8:40 AM KST
    🙌 7
    thumbup rocky 2
  • b

    Beryl Chen

    11/04/2026, 4:57 PM
    party<!channel> We’re live! Grab your coffee and join us at NEXT QUERY 2026—see you there! ☕👉🏻 nextquerylive.phoenixdata.ai James Li, our co-founder and CEO, opens the day with why giving AI agents the right context is now a database problem, plus a first look at what PhoenixAI is building for it. Then Xiaobing Xia shares how Microsoft AI built a real-time data warehouse for its training runs. After the keynotes, pick your track and switch any time: ✅ Track A · Context & Intelligence ✅ Track B · Systems & Scale 20+ production talks from Apple, AWS, Microsoft AI, NVIDIA, Coinbase, Intuit Mailchimp, AppLovin and more. Not registered yet? It's not too late. Register free and your join link arrives by email. 📅 Today · 9:00 AM–3:40 PM PT (1200–640 PM ET · 500–1140 PM UK) · Free & virtual 👉 nextquerylive.phoenixdata.ai Can't stay all day? Every session is recorded, and registered attendees get access afterward.
    🎉 6
    o
    • 2
    • 1
  • b

    Beryl Chen

    11/04/2026, 11:48 PM
    <!here> We’re live in the StarRocks AMA now! 🙌 Members of our engineering team are here and ready to chat—bring your questions, and we’ll answer as many as we can live! 👉 Join us here
    r
    • 2
    • 1