3.00.5

Note:
We also recommend reading Compatibility Changes.

Version: 3.00.5 | Compatibility Level 1 with 3.00.4

Release Date: 2026-02-11

Available Downloads:

New Features

  • Added new configuration parameter maxRecursiveDepth to set maximum recursive depth.

  • Added support for the HTTP protocol in Single Sign-On (SSO).

  • Added new configuration parameter oauthAllowPasswordLoginNodes to specify the aliases of nodes that allow username-password authentication.

  • Added support for module marketplace features:

    • Added function listRemoteModules for listing matched module names in the module marketplace.

    • Added function installModule for downloading specified module files to the node module directory.

    • Added function getLoadedModules for displaying version information of loaded modules.

  • Added License control to the low-latency engine; a special License is now required for use.

  • Added support for encrypting dos files through function encryptModule.

  • Added support for online updates of the client license expiration time in the commercial edition license server after calling setLicenseServerUserResource.

  • Added functions addCacheRulesForComputeGroup, removeCacheRulesForComputeGroup, getCacheRulesForComputeGroup for managing the cache tables for compute groups.

  • Added parameter includeSysDb to function getClusterDFSDatabases to control whether to display system databases; and added parameter includeSysTable to function getClusterDFSTables to control whether to display system tables.

  • Added support for secure HTTPS connections between the MCP server and MCP clients.

  • Added higher-order function nothrowCall for invoking functions in the same way as call but without throwing runtime errors.

  • Added function remove! for removing the element at the specified index from a vector or tuple.

  • Added function movingValid for sliding-window calculations based on non-null data.

  • Added functions rowFilterAndSort, rowMergeAndSort for filtering, sorting, and merging array vectors or columnar tuples.

  • Added functions toColumnarTuple and toTuple for outputting results as columnar tuples and tuples respectively in group by scenarios.

  • Added support for high-availability MVCC table:

    • Added function haMvccTable for creating a high-availability MVCC table.

    • Added function loadHaMvccTable for retrieving the handle of a high-availability MVCC table.

    • Added function dropHaMvccTable for dropping a high-availability MVCC table.

    • Added operation and maintenance functions getHaMvccRaftGroups, getHaMvccLeader, getHaMvccTableInfo, checkpointHaMvcc, and isCheckpointingHaMvcc.

  • Added function qcut for grouping a numeric vector by quantiles and returning the corresponding quantile bin index or label for each element.

  • Added support for plotting SURFACE-type data through the plot function to generate 3D surface plots.

  • Added function yearFrac for calculating year fractions.

  • Added function histogram for computing the histogram of a dataset.

  • Added population covariance computation functions, supporting batch computing and streaming computing: covarp, mcovarp, tmcovarp, cumcovarp, mcovarpTopN, tmcovarpTopN, cumcovarpTopN, rowCovarp

  • Added vector similarity and distance computation functions:

    • Added function minkowski for calculating the Minkowski distance between vectors.

    • Added function seuclidean for calculating the standardized Euclidean distance between vectors.

    • Added function cosine for calculating the cosine similarity/distance between vectors.

    • Added function mahalanobis for calculating the Mahalanobis distance between vectors.

  • Added function appendEventWithResponse for synchronously sending events and blocking until a matching response event is returned.

  • Added support for processing array vectors in scenarios where lowLatency=true is set in the streaming engines.

  • Added the sparse state event engine for specifying different metrics and triggering calculations under different conditions.

  • Streaming data supports data state indicators:

    • Added function changelogStreamTable to create a stream table with an internal status column.

    • Added function getStreamTableChangelog to retrieve data from the stream table with a status column.

    • Added functions StreamGraph::changelogSource and DStream::changelogSink to enable the use of stream tables with status column in Orca.

    • Added function peekAppend for peeking at the output after test data is appended to the engine based on the current state.

  • Added support for setting the timestamp column of high-availability stream tables through setStreamTableTimestamp.

  • Added Orca privileges, introducing the ORCA_GRAPH_CREATE, ORCA_GRAPH_DROP, ORCA_GRAPH_CONTROL, ORCA_TABLE_CREATE, ORCA_TABLE_DROP, ORCA_TABLE_READ, ORCA_TABLE_WRITE, ORCA_ENGINE_MANAGE, and ORCA_MANAGE.

  • Added support for creating a stateless engine through DStream::reactiveStatelessEngine.

  • Added function matchedRowCount for retrieving the number of rows affected by the last executed INSERT INTO / UPDATE / DELETE statement in the current session.

  • Added function getStreamingSQLSubscriptionInfo for retrieving the metadata of a specified Streaming SQL query.

  • Added support for inserting into selected columns using the standard SQL syntax insert into table_name1 (colName1 [, colName2, ...]) select col_name(s) from table_name2.

  • Added function runExternalQuery for executing SQL queries on external databases.

  • Added parameter cgroupBy for function sql to generate metacode including a cgroup by clause.

  • Added function createMktDataEngine for creating a streaming engine to build curves and surfaces in real time.

  • Added function createPricingEngine for creating a streaming engine to price financial products in real time.

  • Added function cmFutVolatilitySurfaceBuilder for building commodity futures options volatility surfaces.

  • Added function cmFutAmericanOptionPricer for pricing American options on commodity futures.

  • Added function cmFutEuropeanOptionPricer for pricing European options on commodity futures.

  • Added function eqDividendCurveBuilder for building equity dividend curves.

  • Added function eqVolatilitySurfaceBuilder for building equity option volatility surfaces.

  • Added function eqEuropeanOptionPricer for equity European option pricing.

  • Added function eqAmericanOptionPricer for equity American option pricing.

  • Added function eqProxyVolatilitySurfaceBuilder for building an equity proxy volatility surface.

  • Added support for the marketData of instrumentPricer and portfolioPricer to accept MktDataEngine and UDF as inputs.

  • Added support for calculating bond with embedded options (OptionBond) in bondInstrumentCalculator.

Improvements

  • Enhanced the startup process of the licenseServer client to support authentication and startup via the standby server when the primary server is unavailable.

  • Optimized the SSO process: Fixed HTTP request errors caused by default ports in SSO requests. Enhanced the oauthUserField configuration to support parsing usernames from nested JSON fields.

  • Optimized the volume selection logic for writes by adding support for weighted write allocation based on each volume’s free space percentage.

  • Added support for DolphinDB ARM to view the remote plugin list and download/install plugins via listRemotePlugins and installPlugin respectively in the plugin marketplace.

  • Added support for displaying the node alias in the return values of getAclAuditLog and getAuditLog.

  • Enhanced permission control for ORCA system tables to ensure they are not visible to non-admin users.

  • Added permission control to listMCPPrompts and listMCPTools.

  • Added configuration parameter enableDynamicScriptOptimization to control whether to enable low-latency optimization for dynamic scripts.

  • Added the enableTransferCompressionToComputeNode configuration parameter and function enableTransferCompressionToComputeNode to control whether compression is enabled when data nodes send data to compute nodes.

  • Changed configuration parameter enableORCA, with the default value adjusted to false.

  • Optimized log output during startup.

  • Enhanced validation logic of the TSDBCacheEngineSize parameter to ensure it does not exceed 50% of the node’s maxMemSize.

  • Enhanced the permission validation logic of getTables to prevent users without table access privileges from obtaining table name information even if they guess the database name.

  • Added support for performing the share operation on DFS partitioned tables.

  • Enhanced syntax exception messages to include the line number.

  • Optimized the error message when using functions in the metrics of the createCrossSectionalEngine function. Detailed error information is now properly returned.

  • Optimized the error message of functions wj and twindow.

  • Added support for modifying members of DolphinDB objects (tuples and dictionaries) through assignment statements or calls to mutable functions (e.g., append!, clear!).

  • attributeTypes now supports fetching attributes and their types by class name.

  • Added support for automatically converting strings passed in through the API to DOUBLE, FLOAT or DECIMAL based on the field type, and inserting them into the table.

  • Optimized the computation algorithm of cdfNormal.

  • Added support for the movingWindowData function to accept an array vector as input.

  • getFunctionViews now supports returning the creator and creation time information of function views.

  • Added support for collecting cache information of the primary key engine (PKEY) via getSessionMemoryStat.

  • Optimized the performance for Orca cross-cluster queries.

  • Added support for adding metrics to ORCA's narrow reactive state engine via addReactiveMetrics, so that it no longer reports “orca engine does not support adding metrics”.

  • Optimized the query performance of text fuzzy match for TextDB.

  • Optimized the reactive stateless engine to support specifying different metrics to trigger calculations under different conditions.

  • Added support for calling movingWindowData on array vectors in the reactive state engine.

  • Added support for using the built-in functions mimaxLast and miminLast in the reactive state engine.

  • createCrossSectionalEngine supports processing columnar tuples.

  • Optimized the subWorkers table returned by getStreamingStat so that workerId is returned even when no data is consumed.

  • Optimized the thread allocation algorithm for subscribeTable to prioritize idle threads when hash is not specified.

  • Optimized memory usage of the persistent stream table during reload.

  • createCEPEngine now supports multiple output tables, and emitEvent supports specifying an output table.

  • Added the includeOperationType parameter to createDataViewEngine to include the change type of each data record in output results.

  • Refactored the high availability for stream processing.

  • Refactored the DStream::udfEngine function.

  • Optimized the performance of time-series engine.

  • Optimized window data overwrite rules for the snapshot join engine.

  • Changed the root job ID of stream processing to a random UUID.

  • Optimized the performance of the SQL Engine.

  • Optimized the query performance for context by.

  • Added support for passing a tuple to funcArgs in contextby.

  • Optimized try-catch exception error messages to include line number location information.

  • Optimized the internal implementation of window join engine and nearest join engine to improve performance.

  • Optimized the execution performance for JOIN.

  • Optimized the matching rules between instruments and marketData for bonds and bond futures.

  • Optimized the implementation of FICC-related computation functions to improve performance.

  • Added optional parameter surfaceName to fxVolatilitySurfaceBuilder for specifying the name of the generated FX option volatility surface.

  • bondPricer, bondFuturesPricer, irDepositPricer, fxForwardPricer , fxSwapPricer, fxSwapPricer and fxEuropeanOptionPricer support batch pricing.

  • Added support for irFixedFloatingSwapPricer and bondFuturesPricer to perform batch pricing.

Issues Fixed

  • Fixed server crashes that could occur when a column of SYMBOL type was set as the sortKey in the TSDB engine.

  • Enhanced configuration access control:

    • Added the enableConfigAccessControl parameter to control whether permission checks are applied when accessing configuration parameters.

    • Added the getOauthClientSecret function to allow admin users to securely retrieve the value of the sensitive oauthClientSecret parameter.

    • Updated the getConfig/getConfigure function to support filtering returned results based on the security level of each parameter and the current user’s permissions when enableConfigAccessControl=true.

  • Fixed the issue where excessive logging after partition updates in the TSDB engine could cause log files to grow rapidly and fill up disk space. This issue was introduced in version 2.00.15.

  • Fixed the issue where concurrent getClusterPerf executions from multiple controllers exceeding the number of available worker threads could cause the system to become unresponsive in a high-availability cluster.

  • Fixed the issue where submitting multiple tasks concurrently could occasionally trigger a scheduling anomaly, causing the system to become unresponsive.

  • Fixed the issue where followers failed to shut down properly when the controller was configured with lanCluster=0 in a high-availability cluster.

  • Fixed the issue where upgrading from 3.00.0.x–3.00.2.x to 3.00.4.x could cause startup failure if the old version contained function views or scheduled jobs involving Catalog-related scripts.

  • Fixed the cluster hang issue caused by concurrent dropTable and write operations.

  • Fixed the issue where file descriptors occasionally leaked in job checkpoint files.

  • Fixed the issue where remote script execution occasionally threw errors after using an XDB connection.

  • Fixed the issue where cached handles were not invalidated during moveReplicas operations in a high-availability cluster, occasionally leading to inconsistent query results.

  • Fixed the issue where memory usage returned by getUserHardwareUsage could be incorrect (negative) due to erroneous automatic type conversion. This issue was introduced in version 2.00.15.

  • Fixed the issue where the bar function could generate out-of-range values when processing time types such as TIME, causing query and update failures.

  • Fixed the incorrect pValue calculation in adfuller when regression ='n' and adfStat > 0.

  • Fixed server crashes that could occur when an empty data source was passed to the mr function due to missing input type validation.

  • Fixed the issue where the result of linearTimeTrend was incorrect when the window was larger than 1024.

  • Fixed the issue where exporting CSV with the saveText function incorrectly handled quotes in fields with the SYMBOL type.

  • Fixed the issue where getUserTableAccessRecords threwan error when querying ranges across two or more job files.

  • Fixed the issue where an unexpected permission error was reported when performing DDL operations in clusters with compute groups.

  • Fixed the issue where each/loop returned incorrect results for functions that have multiple return values, one of which is the same as an input parameter.

  • Fixed the issue where unexpected behavior occurred when using the at or row function on array vectors.

  • Fixed the issue where the totalRows field in getStreamTables overflowed.

  • Fixed the issue where mstd calculations produced incorrect results.

  • Fixed the issue where round could overflow.

  • Fixed the issue where getSessionMemoryStat() reported incorrect OLAPTablet memory statistics under OOM scenarios, which prevented cache cleanup logic from functioning properly.

  • Fixed the issue where percentile calculations could trigger segmentation faults.

  • Fixed the issue when subscribing to a stream table using subscribeTable, if the function specified in the filter parameter produced an output table schema inconsistent with the input stream table, the system neither outputs data nor reports an error.

  • Fixed server crashes that could occur wheninserting an empty vector into a stream table with a timestamp column set by setStreamTableTimestamp.

  • Fixed the issue where enableTableShareAndCachePurge might occasionally fail for a stream table that had multiple local subscriptions.

  • Fixed the issue where cached data was not properly cleared when a subscription was terminated by disconnection instead of using unsubscribe, causing the number of rows in tables managed by enableTableShareAndCachePurge to exceed the configured cacheSize limit.

  • Fixed the issue where registerStreamingSQL failed to parse field names in camelCase.

  • Fixed the issue where an error was reported when a streaming SQL keyed table received a single-row insertion containing a columnar tuple.

  • Fixed server crashes that could occur when a user-defined class method was misused in the metrics of createReactiveStateEngine. The system now detects this misuse and returns a clear error message instead.

  • Fixed the issue where an error was reported when metrics of createReactiveStateEngine returned multiple array vectors.

  • Fixed the issue where an error was reported when a stateless function was used in the metrics of createReactiveStateEngine and the return value alias specified by as was the same as the function's input parameter name.

  • Fixed the issue where an error was reported when subscribing to data published by a 2.00.X cluster from a 3.00.X subscriber.

  • Fixed the issue where using last, lastNot, or functions that return multiple values with keyPurgeFreqInSec enabled could produce incorrect results in the time-series engine.

  • Fixed the issue where, after using warmupStreamEngine to preheat the time-series engine, writing new data caused the engine to output results for all preheated data instead of only the new data.

  • Fixed the issue where a crash could occur when registering a streaming SQL that includes now().

  • Fixed the issue where writes failed when updating data with the same key after declaring the key-value table as a stream input table.

  • Fixed the issue where reactive state engines returned incorrect results when processing DECIMAL64‑type columns with deltas.

  • Fixed the issue where stream table fields containing the ANY type caused an error when appending data through subscriptions.

  • Fixed memory leaks caused by querying tables if a GROUP BY column in an aggregate computation was of BLOB type. This issue was introduced in version 2.00.11.

  • Fixed the issue where an error was reported when a line break was followed by an operator at the beginning of the line in a SQL statement.

  • Fixed the issue where SQL aggregation operations could occasionally cause the server to crash.

  • Fixed the issue where executing an update ... context by ... statement on a shared memory table reported the error “A snapshot table doesn't support data update”.

  • Fixed the issue where inserting data via an INSERT statement failed if a column started with two consecutive NULLs of VOID type.

  • Fixed the issue where required column names could not be correctly parsed in partitioned table queries of the TSDB/IOT engine when select used nested ternary operators ?:.

  • Fixed the issue where unexpected results were returned when the left table in a streaming SQL left join was updated before the right table.

  • Fixed the issue where the error message did not include the line number of the error when the == is not a unary operator syntax error was reported.

  • Fixed the issue where nulls last and nulls first behaved identically in queries.

  • Fixed the issue where using prev in distributed table queries could report an error.

  • Fixed the issue where queries on TSDB tables with GROUP BY clauses that included sortkey columns could cause node crashes if an OOM error occurred during execution.

  • Fixed the issue where queries failed after performing unionAll on two partitioned in‑memory tables.

  • Fixed the issue where sorting occasionally failed to take effect under certain conditions when querying distributed TSDB tables using csort by … desc combined with context by.

  • Fixed the issue where context by caused queries on distributed tables to fail under specific scenarios.

  • Fixed the issue where std calculations could produce errors during grouped aggregation on in-memory tables.