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

    GitHub

    03/30/2026, 5:12 AM
    Release - 3.5.15 New release published by yingtingdong Behavior Changes • Improved
    sql_mode
    handling: when
    DIVISION_BY_ZERO
    or
    FAIL_PARSE_DATE
    mode is set, division by zero and date parse failures in `str_to_date`/`str2date` now return an error instead of being silently ignored. #70004 • When
    sql_mode
    is set to
    FORBID_INVALID_DATE
    , invalid dates in
    INSERT VALUES
    clauses are now correctly rejected instead of being bypassed. #69803 • Expression partition generated columns are now hidden from
    DESC
    and
    SHOW CREATE TABLE
    output. #69793 • Client ID is no longer included in audit logs. #69383 • The
    FORCE
    option for
    REFRESH EXTERNAL TABLE
    has been reverted and is no longer supported. #70428 Improvements • Allowed disabling split and reverse scan ranges for descending TopN by setting
    desc_hint_split_range
    to
    0
    or less. #70307 •
    information_schema
    now shows comments for external catalog tables. #70197 • Added
    EXPLAIN
    and
    EXPLAIN ANALYZE
    support for
    INSERT
    statements in Trino dialect. #70174 • Added configurable parameters for
    CatalogRecycleBin
    to control recycle bin behavior. #69838 • Improved
    ADMIN REPAIR TABLE
    and
    SHOW TABLET STATUS
    to provide better repair and status information. #69656 • Blacklisted queries are now excluded from error metrics. #69621 • Added support for
    SHOW TABLET STATUS
    for cloud-native tablets in shared-data deployments. #69616 • Reduced overhead of Primary Key tablet statistics collection in shared-data clusters. #69548 • Added support for dynamic configuration of the execution state report thread pool size. #69142 Bug Fixes Fixed the following bugs: • Data version not set when restoring a tablet. #70373 • Table comment not set when creating a Hive table. #70318 • Constant folding with double precision arithmetic producing
    INF
    instead of returning an error. #70309 • Iceberg materialized view refresh failing when snapshot timestamps are non-monotonic. #70382 •
    toIcebergTable
    function using
    common
    instead of
    comment
    in property mapping. #70267 • Root user not correctly bypassing Ranger permission checks in all scenarios. #70254 •
    AuditEventProcessor
    thread exiting unexpectedly when an
    OutOfMemoryException
    occurs. #70206 • Out-of-bounds access in
    cal_new_base_version
    during schema change publish. #70132 • Partition predicates pruned unexpectedly due to type mismatch in boundary comparison. #70097 •
    str_to_date
    losing microsecond precision in BE runtime. #70068 • Crash in join spill process when
    set_callback_function
    is called. #70030 • DCHECK failure in
    DeltaWriter::close()
    when called from a bthread context. #69960 • Use-after-free race condition in
    AsyncDeltaWriter
    close/finish lifecycle. #69940 • Journal replay not awaited in
    changeCatalogDb
    on follower FE, causing consistency issues. #69834 • Race condition causing missed write transaction finished editlog. #69899 • Several known CVEs addressed. #69863 • Incorrect LIKE pattern matching with backslash escape sequences. #69775 • Expression analysis failing after renaming a partition column. #69771 • Use-after-free crash in
    AsyncDeltaWriter::close
    . #69770 • Potential bugs in
    PartitionColumnMinMaxRewriteRule
    caused by incorrect
    Partition.hasStorageData
    results. #69751 • Duplicated CSV compression suffix in file sink output file names. #69749 • Lake
    capture_tablet_and_rowsets
    operation accessible without experimental config flag. #69748 • Corrupted cache for Primary Key SST tables. #69693 • Use-after-free in
    AsyncFlushOutputStream
    . #69688 • Incorrect retention clock reset and incomplete scan in
    disableRecoverPartitionWithSameName
    . #69677 • Tablet info not fetched correctly based on run mode in
    SchemaBeTabletsScanner
    . #69645 • Incorrect minimum partition pruning with shadow partitions. #69641 • Different transactions publishing the same version after graceful exit. #69639 • Iterator undefined behavior in
    get_column_values
    when
    rssid
    is not found. #69617 •
    KILL ANALYZE
    statement sometimes not stopping a running
    ANALYZE TABLE
    operation. #69592 • Materialized view force refresh bugs for partition tables. #69488 StarRocks/starrocks
    gratitude thank you 1
    👍 1
  • b

    Beryl Chen

    03/31/2026, 11:08 PM
    📬 New newsletter, lots to share. March brought new CelerData Cloud BYOC features, production stories from teams serving both dashboards & AI agents at sub-second, and community write-ups on hot/cold separation, blockchain analytics, and more! Full newsletter here 👇 https://www.linkedin.com/pulse/march-2026-highlights-what-shipped-whats-running-next-celerdata-f3dvc
    👍 2
  • k

    Kate Shao-Community Manager

    04/01/2026, 2:09 PM
    👋 Hi everyone, If you’ve ever struggled with managing schema changes in StarRocks (manual DDL, hard-to-track changes, inconsistent environments 😵‍💫), this might be helpful:https://www.starrocks.io/blog/how-to-manage-schema-migrations-in-starrocks-with-sqlalchemy-and-alembic This guide shows how to use SQLAlchemy + Alembic to define schemas declaratively, auto-generate migration scripts, version and review every change & keep dev/staging/prod in sync. It’s a much cleaner, code-driven approach vs manual ALTER TABLEs, which can get error-prone as projects grow.
    yay 4
  • k

    Kate Shao-Community Manager

    04/08/2026, 11:08 AM
    Hey all dogdance I want to share a recent deep dive on something we’re seeing more of with AI agent workloads. A single question can turn into 20–50+ parallel queries, which really stresses traditional analytics systems (concurrency, freshness, complex joins, etc.). This post breaks down the key challenges and how we’re thinking about solving them with StarRocks.starrocks 📚 Full article: https://www.starrocks.io/blog/designing-an-analytics-engine-for-ai-agent-workloads Anyone building AI with StarRocks? Would love your thoughts 👇
    question rocky 2
    gratitude thank you 2
    👍 2
    dogdance 2
  • g

    GitHub

    04/17/2026, 2:35 AM
    Release - 4.0.9 New release published by wangsimo0 4.0.9 Release Date: April 16, 2026 Behavior Changes • When VARBINARY columns appear inside nested types (ARRAY, MAP, or STRUCT), StarRocks now correctly encodes the values in binary format in MySQL result sets. Previously, raw bytes were emitted directly, which could break text-protocol parsing for null bytes or non-printable characters. This change may affect downstream clients or tools that process VARBINARY data inside nested types. #71346 • Routine Load jobs now automatically pause when a non-retryable error is encountered, such as a row causing the Primary Key size limit to be exceeded. Previously, the job would retry indefinitely because such errors were not recognized as non-retryable by the FE transaction status handler. #71161 •
    SHOW CREATE TABLE
    and
    DESC
    statements now display the Primary Key columns for Paimon external tables. #70535 • Cloud-native tablet metadata fetch operations (such as
    get_tablet_stats
    and
    get_tablet_metadatas
    ) now use a dedicated thread pool instead of the shared
    UPDATE_TABLET_META_INFO
    pool. This prevents metadata fetch contention from impacting repair and other tasks. The new thread pool size is configurable via a new BE parameter. #70492 Improvements • Added session variables to control the encoding behavior of VARBINARY values in MySQL protocol responses, providing fine-grained control over binary result encoding in client connections. #71415 • Added a
    snapshot_meta.json
    marker file to cluster snapshots to support integrity validation before snapshot restoration. #71209 • Added warning logs for silently swallowed exceptions in
    WarehouseManager
    to improve observability of silent failures. #71215 • Added metrics for Iceberg metadata table queries to support performance monitoring and diagnosis. #70825 • The
    regexp_replace()
    function now supports constant folding during FE query planning, reducing planning overhead for queries with constant string arguments. #70804 • Added categorized metrics for Iceberg time travel queries to improve monitoring and performance analysis. #70788 • Added log output when update compaction is suspended, improving visibility into compaction lifecycle. #70538 •
    SHOW COLUMNS
    now returns column comments for PostgreSQL external tables. #70520 • Added support for dumping query execution plans when a query encounters an exception, improving diagnosability of runtime failures. #70387 • Tablet deletion during DDL operations is now batched, reducing write lock contention on tablet metadata. #70052 • Added a Force Drop recovery mechanism for synchronous materialized views that are stuck in an error state and cannot be dropped through normal means. #70029 Bug Fixes The following issues have been fixed: • An issue where the profile
    START_TIME
    and
    END_TIME
    were not displayed in the session timezone. #71429 • A shared-object mutation bug in
    PushDownAggregateRewriter
    when processing CASE-WHEN/IF expressions, which could cause incorrect query results. #71309 • A use-after-free bug in
    ThreadPool::do_submit
    triggered when thread creation fails. #71276 • An issue where
    information_schema.tables
    did not properly escape special characters in equality predicates, causing incorrect results. #71273 • An issue where the materialized view scheduler continued to run after the materialized view became inactive. #71265 • Fixed a task signature collision in
    UpdateTabletSchemaTask
    across concurrent ALTER jobs that could cause schema update tasks to be skipped. #71242 • An issue where row count estimation produced NaN values for histograms that contained only MCV (Most Common Values) entries. #71241 • A missing dependency on the AWS S3 Transfer Manager in the AWS SDK integration. #71230 • An issue where
    TaskManager
    scheduler callbacks did not verify whether the current node is the leader, potentially causing duplicate task execution on follower nodes. #71156 • A thread-local context pollution issue where
    ConnectContext
    information was not cleared after a leader-forwarded request completed. #71141 • An issue where the partition predicate was missing in short-circuit point lookups, causing incorrect query results. #71124 • A NullPointerException when analyzing generated columns during Stream Load or Broker Load if a column referenced by the generated column expression was absent from the load schema. #71116 • A use-after-free bug in the error handling path of parallel segment and rowset loading. #71083 • An issue where delvec orphan entries were left behind when a write operation preceded compaction in the same publish batch. #71049 • An issue where queries appeared in the
    current_queries
    result via HTTP loopback when checking query progress internally. #71032 • CVE-2026-33870 and CVE-2026-33871. #71017 • A read lock leak in
    SharedDataStorageVolumeMgr
    . #70987 • An issue where the input and result columns of the
    locate()
    function shared the same NullColumn reference inside BinaryColumns, causing incorrect results. #70957 • An issue where safe tablet deletion checks were incorrectly applied during ALTER operations in share-nothing mode. #70934 • A race condition in
    _all_global_rf_ready_or_timeout
    that could prevent global runtime filters from being applied correctly. #70920 • An int32 overflow in the
    ACCUMULATED
    metric macro that caused metric values to silently overflow. #70889 • Incorrect aggregation results in dictionary-encoded merge GROUP BY queries. #70866 • CVE-2025-54920. #70862 • A potential data loss issue in aggregation spill caused by incorrect hash table state handling during
    set_finishing
    . #70851 • An issue where the
    content-length
    header was not reset when
    proxy_pass_request_body
    is disabled. #70821 • An issue where the spill directory for load operat… StarRocks/starrocks
    ✅ 1
    👀 2
    🙌 1
    ❤️ 1
  • g

    GitHub

    04/21/2026, 10:54 PM
    Release - 4.1.0 New release published by celerdata2308 4.1.0 Release Date: April 21, 2026 Shared-data Architecture • New Multi-Tenant Data Management Shared-data clusters now support range-based data distribution and automatic splitting and merging of tablets. Tablets can be automatically split when they become oversized or hotspots, without requiring schema changes, SQL modifications, or data re-ingestion. This feature can significantly improve usability, directly addressing data skew and hotspot issues in multi-tenant workloads. #65199 #66342 #67056 #67386 #68342 #68569 #66743 #67441 #68497 #68591 #66672 #69155 • Large-Capacity Tablet Support (Phase 1) Supports significantly larger per-tablet data capacity for shared-data clusters, with a long-term target of 100 GB per tablet. Phase 1 focuses on enabling parallel Compaction and parallel MemTable finalization within a single Lake tablet, reducing ingestion and Compaction overhead as tablet size grows. #66586 #68677 • Fast Schema Evolution V2 Shared-data clusters now support Fast Schema Evolution V2, which enables second-level DDL execution for schema operations, and further extends the support to materialized views. #65726 #66774 #67915 • [Beta] Inverted Index on shared-data Enables built-in inverted indexes for shared-data clusters to accelerate text filtering and full-text search workloads. #66541 • Cache Observability Query-level cache hit ratio is now exposed in audit logs and the monitoring system for better cache transparency and latency diagnosis. Additional Data Cache metrics include memory and disk quota usage, and page cache statistics. #63964 • Added segment metadata filter for Lake tables to skip irrelevant segments based on sort key range during scans, reducing I/O for range-predicate queries. #68124 • Supports fast cancel for Lake DeltaWriter, reducing latency for cancelled ingestion jobs in shared-data clusters. #68877 • Added support for interval-based scheduling for automated cluster snapshots. #67525 • Supports pipeline execution for MemTable flush and merge, improving ingestion throughput for cloud-native tables in shared-data clusters. #67878 • Supports
    dry_run
    mode for repairing cloud-native tables, allowing users to preview repair actions before execution. #68494 • Added a thread pool for publish transactions in shared-nothing clusters, improving publish throughput. #67797 • Supports dynamically modifying the
    datacache.enable
    property for cloud-native tables. #69011 Data Lake Analytics • Iceberg DELETE Support Supports writing position delete files for Iceberg tables, enabling DELETE operations on Iceberg tables directly from StarRocks. The support covers the full pipeline of Plan, Sink, Commit, and Audit. #67259 #67277 #67421 #67567 • TRUNCATE for Hive and Iceberg Tables Supports TRUNCATE TABLE on external Hive and Iceberg tables. #64768 #65016 • Incremental materialized view on Iceberg Extends the support for incremental materialized view refresh to Iceberg append-only tables, enabling query acceleration without full table refresh. #65469 #62699 • VARIANT Type for Semi-Structured Data in Iceberg Supports the VARIANT data type in Iceberg Catalog for flexible, schema-on-read storage and querying of semi-structured data. Supports read, write, type casting, and Parquet integration. #63639 #66539 • Iceberg v3 Support Added support for Iceberg v3 default value feature and row lineage. #69525 #69633 • Iceberg Table Maintenance Procedures Added support for
    rewrite_manifests
    procedure and extended
    expire_snapshots
    and
    remove_orphan_files
    procedures with additional arguments for finer-grained table maintenance. #68817 #68898 • Iceberg
    $properties
    Metadata Table
    Added support for querying Iceberg table properties via the
    $properties
    metadata table. #68504 • Supports reading file path and row position metadata columns from Iceberg tables. #67003 • Supports reading
    _row_id
    from Iceberg v3 tables, and supports global late materialization for Iceberg v3. #62318 #64133 • Supports creating Iceberg views with custom properties, and displays properties in SHOW CREATE VIEW output. #65938 • Supports querying Paimon tables with a specific branch, tag, version, or timestamp. #63316 • Supports complex types (ARRAY, MAP, STRUCT) for Paimon tables. #66784 • Supports Paimon views. #56058 • Supports TRUNCATE for Paimon tables. #67559 • Supports Partition Transforms with parentheses syntax when creating Iceberg tables. #68945 • Supports ALTER TABLE REPLACE PARTITION COLUMN for Iceberg tables. #70508 • Supports Iceberg global shuffle based on Transform Partition for improved data organization. #70009 • Supports dynamically enabling global shuffle for Iceberg table sink. #67442 • Introduced a Commit queue for Iceberg table sink to avoid concurrent Commit conflicts. #68084 • Added host-level sorting for Iceberg table sink to improve data organization and reading performance. #68121 • Enabled additional optimizations in ETL execution mode by default, improving performance for INSERT INTO SELECT, CREATE TABLE AS SELECT, and similar batch operations without explicit configuration. <ht… StarRocks/starrocks
    🎉 5
    ✅ 1
    ❤️ 1
    🙌 1
    👀 1
    😀 1
  • k

    Kate Shao-Community Manager

    04/23/2026, 1:27 PM
    Hi guys!👋 Part 3 of the StarRocks Monitor & Alert Guide is now live. This post focuses on application availability — the signals that help you catch issues before they impact analytics freshness, dashboard reliability, and downstream users. Key areas to monitor: 🚨 Query failures 📈 P95 latency spikes 🔄 Ingestion lag ⚠️ Materialized view refresh and schema change failures Check out the guide and level up your alerting strategy👉 https://www.starrocks.io/blog/starrocks-monitor-alert-guide_part-3-application-availability
    gratitude thank you 2
    🔥 1
  • k

    Kate Shao-Community Manager

    04/30/2026, 2:16 AM
    star 1StarRocks 4.1 is now available!rocky nice This release is designed to simplify production analytics at scale, with major improvements across adaptive data distribution, schema evolution, cache observability, and Iceberg integration. Highlights include: • Automatic multi-tenant data management with adaptive tablet splitting • Large-capacity tablets up to ~30 GB in shared-data mode • Fast Schema Evolution v2 for second-level DDL operations • End-to-end cache observability • Deeper Iceberg integration, including native SQL DELETE, Variant support, and incremental materialized views 📖 Read the blog: https://www.starrocks.io/blog/starrocks-4.1-now-available-built-for-production-designed-to-simplify ⬇️ Download StarRocks 4.1: https://www.starrocks.io/download/community or https://hub.docker.com/u/starrocks Read the blog, try StarRocks 4.1, and let us know what you think.👇
    🔥 4
  • b

    Beryl Chen

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

    Kate Shao-Community Manager

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

    GitHub

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

    Kate Shao-Community Manager

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

    GitHub

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

    Kate Shao-Community Manager

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

    GitHub

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

    GitHub

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

    Kate Shao-Community Manager

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

    Beryl Chen

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

    Kate Shao-Community Manager

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

    GitHub

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

    GitHub

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

    Kate Shao-Community Manager

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

    GitHub

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

    Beryl Chen

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

    Kate Shao-Community Manager

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

    Kate Shao-Community Manager

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

    GitHub

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

    GitHub

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

    Beryl Chen

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

    Kate Shao-Community Manager

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