http://starrocks.io logo
Join Slack
Powered by
# announcements
  • 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
    🙌 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