メインコンテンツまでスキップ

v26.0

This article describes the release notes for VeloDB Core v26.0.

Note VeloDB Core v26.0 was developed based on Apache Doris v4.0 .

v26.0.4 (June 16, 2026)

This release incorporates Apache Doris v4.0.6 (build base 4.0.6-rc02) along with VeloDB-specific enhancements.

New Features

  • Added the mmhash3_u64_v2 hash function.
  • Added the json_object_flatten scalar function for flattening nested JSON objects.
  • Added lambda comparator support to array_sort, so arrays can be sorted with custom comparison logic.
  • Added Iceberg REST catalog and S3 Tables IAM role authentication support.
  • Added Compaction task tracking through a system table.

Improvements

  • Changed the default Time Series Compaction trigger threshold from 2000 files to 1000 files, so time series data compacts sooner.
  • Reduced memory pressure during load and write workloads by adapting write buffer sizing, allowing online adjustment of the flush thread pool, and releasing unused write memory earlier.
  • Improved Compaction isolation in compute-storage decoupled mode, reducing contention between user workloads and background Compaction.
  • Reduced optimizer planning overhead for complex queries and improved row-count estimates for queries after partition pruning.
  • Reduced statistics collection overhead by skipping overly long string columns.
  • Improved audit and metrics accuracy for partition near-limit reporting, histogram labels, internal query status, and prepared statement QPS.

Bug Fixes

  • Fixed INTERSECT and EXCEPT queries losing NULL rows when predicates were pulled up during planning.
  • Fixed count(null) being incorrectly treated as count(*), and fixed count queries with a MATCH_ALL expression failing with a NoSuchElementException.
  • Fixed materialized view rewrites returning incorrect results when partition pruning removed constant-true predicates, and fixed rewrites that merged partitions not needed by the query.
  • Fixed multi-input fragment queries failing with Rows mismatched! Data may be lost when the same fragment received both broadcast and hash-partitioned inputs.
  • Fixed errors in queries that push projects into UNION or reuse CTE producer statistics.
  • Fixed the no_use_cbo_rule hint being silently ignored.
  • Fixed several TIMESTAMPTZ and datetime issues, including LEAD and LAG preserving the wrong type, DST gap and fold handling, elapsed-time calculations, and TopN runtime predicate support.
  • Fixed incorrect results when casting scientific-notation strings to Decimal.
  • Fixed incorrect results from allow_zero_date, and changed from_olap_string to return NULL instead of throwing when datetime parsing fails.
  • Fixed integer type inference and argument resolution for user variables.
  • Fixed ALTER VIEW definitions not propagating to follower FEs when the view has a COMMENT. You are affected only in multi-FE deployments.
  • Fixed incorrect results from views over Variant columns when the view definition lost Variant subfield references.
  • Fixed invalid alias rewriting in view definitions and view columns losing colUniqueId under lazy materialization.
  • Fixed Variant compaction failures on keyless tables with a Variant column whose uid is 0.
  • Fixed Variant subcolumns being lost after Row Store partial-column updates, and fixed reading legacy single-part dot-key subcolumn paths.
  • Fixed duplicate Variant JSON paths keeping the wrong occurrence. The first occurrence is now preserved.
  • Fixed Broker Load loading only the first file when multiple file paths are specified.
  • Fixed PostgreSQL CDC streaming jobs silently dropping DML after a task restart.
  • Fixed streaming job offset, statistics, and property restoration after FE checkpoint or restart.
  • Fixed Routine Load failures from null Kafka metadata state and from coordinating BE restarts.
  • Fixed CSV parsing when a UTF-8 BOM file uses an enclose character.
  • Fixed INSERT job statistics disappearing from SHOW LOAD after FE restart, and fixed InsertLoadJob memory leaks when jobs stayed in PENDING.
  • Fixed JDBC catalog type mapping for Doris-compatible MySQL endpoints whose version_comment does not contain Doris.
  • Fixed query TVF column aliases being lost across JDBC catalogs.
  • Fixed Hive DATE values shifting because of timezone handling in external readers.
  • Fixed predicate filters being skipped when external file scans mix native and JNI readers.
  • Fixed SHOW PARTITIONS incompatibility with external catalogs and the partitions TVF.
  • Fixed an out-of-bounds crash when generating partition columns for Iceberg or Paimon tables.
  • Fixed Parquet read and write issues involving INT96 timestamp output, Page V2 encoding, and conditional checks.
  • Fixed table-valued functions failing when the generated Thrift message exceeded the configured size limit.
  • Fixed several cloud schema change failures involving local rowset replacement, version holes, and delete bitmap capture.
  • Fixed a race between first-time dynamic partition setup and concurrent CREATE MATERIALIZED VIEW.
  • Fixed CANCEL ALTER with an empty job list being treated as canceling all rollup jobs.
  • Fixed SHOW TABLET failing when no database is selected, fixed SHOW BACKENDS field order mismatch, and fixed partition cached versions missing from SHOW PROC.
  • Fixed BE crashes during concurrent OLAP scans, shared-hash-table hash joins that publish runtime filters, and IO callback cleanup.
  • Fixed Arrow Flight SQL query execution when results are returned from BE, fixed client IP authentication, and fixed Arrow string size handling.

v26.0.3 (April 12, 2026)

This release incorporates Apache Doris v4.0.5 along with VeloDB-specific enhancements.

New Features

  • Added support for ASOF JOIN, which matches each row to the closest preceding row in time and is useful for time series analysis.
  • Added ORDER BY and LIMIT clauses to UPDATE and DELETE statements.
  • Enhanced full-text search with BM25 relevance scoring, including phrase-level scoring, added prefix and phrase-prefix queries, and made it possible to use a MATCH result as a projected virtual column.

Improvements

  • Raised the default partition limit to 20000.
  • Changed the default search function mode from standard to Lucene.
  • Extended the NDV approximate distinct count function to support the decimalv2 type.
  • Improved the performance of queries that read tables through a Paimon catalog.
  • Reduced memory usage during data loading.

Bug Fixes

  • Fixed the abs() function returning an incorrect result for decimalv2 values. You are affected if you call abs() on a column or expression of the legacy decimalv2 type.
  • Fixed SUM and AVG failing with a type error when given JSON input, such as SUM over a json_extract result. These aggregations now work by coercing the JSON value to DOUBLE.
  • Fixed array_apply failing with a type error on arrays that contain LARGEINT values.
  • Fixed the query cache returning incorrect results when different subcolumns of the same Variant column were read. You are affected only if the query cache is enabled and you query more than one subcolumn of a Variant column.
  • Fixed incorrect results from ORDER BY ... LIMIT (TopN) queries over an outer join when the sort key comes from the nullable side of the join.
  • Fixed a query error when an asynchronous materialized view defined on a table with Variant columns was eligible to rewrite the query.
  • Fixed several full-text search issues: a crash when MATCH was used on an aliased column, incorrect parsing of search terms containing a slash, wrong handling of NULL rows in negated (MUST_NOT) clauses, and a crash on very long indexed string values.
  • Fixed crashes when reading Iceberg tables that have both undergone a schema change and use equality deletes, and a failure of Iceberg rewrite_data_files after the table was updated.
  • Fixed a crash in set operations (UNION, INTERSECT, EXCEPT) when the combined data exceeded 4 GB, and a crash in the ORC reader when predicate pushdown was applied while reading ORC files.
  • Fixed time zone handling in the hour_ceil and hour_floor functions on timestamps that carry a time zone, and incorrect results when using non-standard time zone offsets such as +08:45.
  • Fixed streaming insert jobs that could stall or fail, including when no new files were found, an object storage authentication error was silently ignored, table function properties were not refreshed after an ALTER statement, or a null pointer error occurred during replay. You are affected only if you use streaming insert jobs.
  • Fixed routine load jobs being incorrectly cancelled after a frontend restart that followed a table swap (REPLACE).
  • Fixed INSERT OVERWRITE failing with an error when the partitions being replaced did not exactly match the table's current partition ranges, for example after partitions had been added or removed.
  • Fixed query errors when reading an Elasticsearch catalog table whose keyword field contains array data.
  • Hardened LDAP filter handling to prevent injection. Relevant only to deployments that use LDAP authentication.

v26.0.2 (March 25, 2026)

Improvements

v26.0.1 (March 17, 2026)

Improvements