3.00.6

Note:
We also recommend reading Compatibility Changes.

Version: 3.00.6 | Compatibility Level 2 with 3.00.5

Release Date: 2026-07-08

Available Downloads:

New Features

  • Added the AI Agent runtime framework (DolphinX) to provide core capabilities such as agent interaction, session management, skill management, memory management, LLM integration, context assembly, and permission control.

  • Added FeatureDB, with support for managing and accessing feature data through the fstore client and Python package.

  • Added function stdBondForwardPricer for pricing standard bond forwards.

  • Added function bondForwardPricer for pricing bond forwards.

  • Added function creditCurveBuilder for building credit curves.

  • Added FloatingRateBond instrument for representing floating-rate bonds.

  • Added function bondOutrightRepoPricer for pricing bond outright repos.

  • Added function bondPledgedRepoPricer for pricing bond pledged repos.

  • Added support for pricing floating-rate bonds and option bonds in bondPricer.

  • Added function irEuropeanSwaptionPricer for pricing European interest rate swaptions.

  • Added function irSwaptionVolatilityCubeBuilder for building interest rate swaption volatility cubes.

  • Added function irCapFloorVolatilitySurfaceBuilder for constructing interest rate cap/floor volatility surfaces.

  • Added function irCapFloorPricer for pricing interest rate caps and floors.

  • Added function impliedRepoRateCalculator for calculating the implied repo rate of treasury bond futures.

  • Added function irForwardRateAgreementPricer for pricing forward rate agreements.

  • Added function FxDigitalOptionPricer for pricing FX digital options, with support for setting the reporting currency.

  • Added function fxRangeAccrualOptionPricer for pricing FX range accrual options.

  • Added function fxNonDeliverableForwardPricer for pricing FX non-deliverable forwards.

  • Added function eqRangeAccrualOptionPricer for pricing equity range accrual options.

  • Added function eqDigitalOptionPricer for pricing equity digital options.

  • Added function creditDefaultSwapPricer for pricing credit default swaps.

  • Added Copula series functions to support fitting multiple Copula models and calculating probability densities, with calculation results consistent with MATLAB.

  • Added createStatusEngine for automatic NEW/UPDATE status labeling in streaming pipelines; added status semantics

    parameters to createTimeSeriesEngine and createReactiveStateEngine.

  • Added aggregate function twavg for calculating the time-weighted average of numeric sequences based on time duration. Added function rowTwavg for calculating time-weighted averages by row, with support for vector, array vector, columnar tuple, and matrix inputs.

  • Added function mmaxDrawdown (alias mmdd) for calculating the maximum drawdown within a sliding window, equivalent to moving(maxDrawdown{,ratio}, X, window, minPeriods). Added support for using mmaxDrawdown in reactiveStateEngine for streaming computation.

  • Added higher-order function movingDynamic for variable-length window sliding calculations.

  • Added filtering functions fir and iir for linear filtering of numeric data.

  • Added function scheduleGenerator for generating a sequence of dates.

  • Added function dateGenerator for generating a new date.

  • Added support for accessing Instrument object fields through instrument["key"] and instrument.key syntax.

  • Added function deleteJobArtifacts for deleting persisted job results and related message files from the disk of the current node. Added function getAllJobs for retrieving persisted background job history based on user permissions.

  • Added function getDatabaseDDL, getDBTableDDL for generating database/table creation statements that can be executed through runScript.

  • Added the setCatalogComment, setSchemaComment, getCatalogComment, getSchemaComment functions for setting and retrieving Catalog and Schema comments.

  • Added function getLicenseServerStatus for retrieving the connection status of the license server and the remaining number of days available after disconnection.

  • Added functions enableDynamicScriptOptimization and disableDynamicScriptOptimization to enable or disable dynamic script optimization at the session level.

  • Added licenseSourceType field to the return value of license to describe the license loading source, with support for loading only from a dongle.

  • Added support for license server to perform license verification through a hardware dongle.

  • Added function uj for implementing the union join functionality in kdb syntax.

  • Added function sortCol for specifying the sort column, sort order, and null ordering in csort and orderBy of metaprogramming SQL (sql).

  • Added the isView field to the return value of the defs function to distinguish regular functions from function views.

  • Added the tableType field to the return value of the schema function to identify in-memory table types, supporting differentiation among regular tables, shared keyed in-memory tables, and shared indexed in-memory tables.

  • Added parameter intercept to beta, mbeta, cumbeta, and rowBeta for controlling whether the intercept is included.

  • Added configuration parameter userParallelismHardLimit to enable user-level hard limits on task parallelism.

  • Added configuration parameter replicaBalancingPolicy to control the replica balancing policy in multi-replica scenarios. When enabled, SQL execution can evenly distribute partition processing tasks across multiple replica nodes instead of preferentially using the current node.

  • Added configuration parameter volumeType to specify the disk type of TSDB storage volumes and optimize level file read performance in SSD scenarios.

  • Added configuration parameter dfsChunkLeaseRenewInterval to control the renewal interval of DFS chunk leases. The default value is 20 seconds.

  • The INSERT INTO ... VALUES statement supports writing multiple rows of values across multiple lines.

  • Added support for referencing table names, field names, and table-alias-qualified field names with backticks (`) in MySQL mode to avoid conflicts between identifiers and keywords.

  • Added support for intra-group pagination in grouped queries:

    • Added support for paginating window aggregation results within each group in group by ... interval(...) queries using window limit offset, count.

    • Added support for paginating detailed data within each group in context by queries using limit offset, count.

  • Added support for specifying aliases for tables accessed as dictionary members in the form of schema.table alias, for example, SELECT t.* FROM dashboardConfigDb.configDtl t.

  • Added support for using ROLLUP syntax in SQL GROUP BY clauses, including GROUP BY rollup(...) and GROUP BY ... WITH ROLLUP, to generate grouped subtotals and grand totals.

  • The JIT compiler has been refactored with significantly enhanced functional programming support, including function values, lambdas, closures, partial application, default/keyword arguments, non-scalar subscript indexing, and class member type annotations with container element access. A new JIT call statistics function is also available for inspecting JIT hit/miss information.

  • Added support for writing loop control logic using the while statement.

  • Added support for using @desc to annotate function definitions with documentation, parameter types, return types, and other metadata. Added the signature function to retrieve function metadata such as the function name, description, parameter types, return type, parameter count, and syntax, and to identify whether a function is a command-line function or a user-defined function.

  • Added support for PAIR, MATRIX, SET, TABLE, and other types as type annotations in classes.

  • Added support for using ANY[<BasicType>] to express subtypes of the ANY type, including columnar tuple types.

  • Added support for using moving with user-defined functions that return variable-length array vectors in stateful engines.

  • Added support for the aggregate function twavg in the time-series engine.

  • Added support for configuring both updateTime and forceTriggerTime in time-series engines, including dailyTimeSeriesEngine.

  • Added support for outputting ANY type fields through the enlist function in the time-series engine and distributed time-series engine.

  • Added support for connecting high-availability stream table subscriptions to non-leader nodes, with subscribeTable calls automatically forwarded to the leader node.

  • Added return field accessControlEnabled to getStreamTables to indicate whether access control is configured for a stream table.

  • Added support for controlling the snapshot calculation range in the order book engine through multiple startTime and endTime ranges.

  • Added support for partial column updates in the PKEY engine through the ignoreNull parameter of tableUpsert, preventing unspecified columns from being updated to NULL.

  • Added support for configuring data retention and cold-storage migration policies for monthly partitioned databases through setRetentionPolicy.

  • Added support for loading multiple Parquet files with createExternalTable and parsing Hive partition information, allowing external Parquet data to be queried directly through SQL.

  • Added support for implicitly converting STRING/SYMBOL values to target column types, including TEMPORAL, INT, and LONG, when appending to or updating in-memory and DFS tables.

  • Added support for implicit string type conversion when inserting multiple rows into an in-memory table in a single operation.

  • Added support for omitting s3AccessKeyId, s3SecretAccessKey, and s3Region from the configuration file when using S3 for tiered storage and S3 Backup, with S3 account authentication information automatically obtained through the AWS SDK default credential chain.

  • Added support for viewing the partition data of PKEY engine tables in the web interface.

  • Added support for automatically zero-padding incomplete date-time strings and converting them to DATETIME during DATETIME parsing and implicit conversion.

  • Added data type and data category definitions to support Shark/GPU-related type identification.

  • The flatten function now supports flattening tuples that contain tables or dictionaries.

  • Added longAsString parameter to toStdJson to serialize LONG values as strings, preventing precision loss when JavaScript parses integers that exceed the safe integer range.

  • Added support for downloading plugins through HTTP/HTTPS proxies in installPlugin, with automatic detection of the http_proxy and https_proxy environment variables and support for proxy authentication with a username and password.

  • Added support for importing BLOB data from text files through loadText, ploadText, and loadTextEx.

  • Added support for uploading data in Apache Arrow IPC format. The server can now parse Arrow-formatted upload requests from clients and automatically convert Arrow data types to DolphinDB internal types.

Improvements

  • Optimized the type display logic of the objs function so that keyed tables and indexed tables are displayed as KEYED and INDEXED, respectively.

  • Optimized error messages for invalid identifiers during SQL syntax parsing so that an explicit invalid identifier message is returned when a field alias or variable name starts with a digit.

  • Optimized the error message for IN condition lists during hash partition pruning so that, when the value type in a single-column IN list is not hashable, the error message clearly indicates the partition column, IN list source, column name, and actual type.

  • Optimized cold storage allocation strategy: when migrating data from hot to cold storage tier, the system selects the target cold volume based on the ratio of free space to capacity.

  • Optimize data read performance accessing cold data in tiered storage and reading data from S3 backups.

  • Optimized the disk space update mechanism for compute nodes in storage-compute separation mode by adjusting the background thread update interval from 2 seconds to 30 seconds and adding DEBUG logs for disk capacity and usage.

  • Optimized the mechanism for caching compute group data through the warmupComputeNodeCachefunction to reduce the memory usage of index caches and improve memory usage controllability in storage-compute separation scenarios.

  • Optimized the query performance of the TSDB engine when variables are used in the WHERE clause.

  • Enhanced the validation logic for the chunkGranularity parameter during PKEY engine database creation to return an error when chunkGranularity is not “TABLE”.

  • Increased the maximum length of columnComment from 256 bytes to 1024 bytes.

  • Added optional parameters intercept and minPeriods to linearTimeTrend, supporting regression without intercept and specifying the minimum number of valid data points required within a window.

  • Optimized the JIT execution performance of CEP scripts to improve event processing performance during peak real-time market data traffic.

  • Optimized the configuration logic of setStreamTableTimestamp, allowing the automatic timestamp column of a stream table to be set at any position.

  • Optimized dynamic metrics management in the Orca stream engine, added support for adding, deleting, and querying metrics for multiple reactive engines by engine object or string name.

  • Optimized the field parsing logic of Instrument so that the notionalCurrency field of CmFutAmericanOption, CmFutEuropeanOption, EqAmericanOption, and EqEuropeanOption is optional and defaults to CNY when not specified.

  • Optimized the expired chunk version reclamation mechanism.

  • Optimized Raft Leader stability to reduce the probability of unexpected Leader switches in control-node high-availability scenarios.

  • Optimized the scheduling logic for DFS transaction timeout and expired transaction cleanup. The default transaction timeout is adjusted to 6 times the renewal interval.

  • Optimized getComputeNodeCacheWarmupJobStatus to increase the maximum number of completed cache warmup job history records from 10 to 4096.

  • Optimized the permission error message for DROP DATABASE so that it clearly indicates that the user is not authorized to drop the specified database when the required permission is missing.

  • Optimized the shutdown logic after license server heartbeat failures, and added license server status information.

    • Optimized the shutdown mechanism when license server responses are not received, extending the automatic shutdown delay from 2 to 14 days.

    • Added function getLicenseServerStatus() for retrieving the license server status.

  • Added lastConnectionTime to the return value of getLicenseUsage to show the last time the License Server was connected.

  • Added createTime to the return value of objs(true) for viewing the creation time of shared variables.

  • Optimized the implementation of the Shark symbolic regression feature to improve its maintainability and extensibility.

  • Optimized the value retrieval logic of the matrix loc function so that, when filtering a matrix by row name or column name, the output is returned in the order of names in the filter vector while keeping rowName and colName consistent.

  • Optimized memory usage of compute nodes during full-table preloading in the TSDB engine under storage-compute separation scenarios.

Issues Fixed

  • Resolved an issue in high-availability clusters where, after a Leader switchover, data nodes could repeatedly output a large number of "Unknown recovery task" warning logs, causing log files to grow rapidly and potentially exhaust disk space.

  • Fixed an issue where an error occurred when appending a VOID column (e.g., generated by SELECT null) to a SYMBOL column.

  • Fixed an issue where an S00003 exception could be thrown when querying a DFS table and merging partition results if the number of distinct values in a SYMBOL result column exceeded 2,097,152. The system now automatically converts the result column to STRING.

  • Fixed an issue where toStdJson generated incorrect JSON text when processing strings containing \b or \f, causing fromStdJson to report Invalid json text during parsing.

  • Optimized and fixed result type and stability issues in the iif function when both trueResult and falseResult are of the SYMBOL type.

  • Fixed a performance issue where special distributed queries with CONTEXT BY clauses could not execute concurrently. This issue was introduced in version 2.00.14.

  • Fixed an issue where a parsing error occurred when e was used as a table alias in SQL queries.

  • Fixed an issue where parsing errors could occur in JOIN, single-table query, and UNION/UNION ALL scenarios when a table alias in the SQL FROM clause was the same as a DolphinDB function name.

  • Fixed an issue where node restart could fail due to deserialization failures after adding a function view that contains an update operation on an in-memory table in a tuple.

  • Fixed the following issues when using context by ... limit together with the having clause in the IOTDB engine:

    • Fixed an issue where existing column names in the having clause might not be recognized.

    • Fixed an issue where query results could be incorrect when the having clause contains aggregate, window, or order functions.

  • Fixed crashes that could occur when byRow processes empty tuple data.

  • Fixed several issues related to exception handling with try-catch.

  • Fixed the issue where an error occurred when a query hit the cache engine buffer in TSDB engine, caused by the contain method of a SYMBOL vector accepting only LITERAL values.

  • Fixed an issue where, in a storage-compute separation deployment, after executing flushComputeNodeMemCache, getComputeGroupChunksStatus incorrectly reported chunks still cached on the compute node's disk as NOT CACHED.

  • Fixed an issue where an error could occur due to abnormal partition column type inference when repartitionDS did not set partitionScheme and repartitioned by a SYMBOL column in the TSDB engine.

  • Fixed an issue where the PKEY engine could cause a data node to crash when replaying stashed data after a cluster restart.

  • Fixed an issue in VectorDB scenarios where executing a vector similarity query with order by rowEuclidean(...) limit K on a table assigned to a variable via loadTable would throw the error Table::filterTopKVector() not supported.

  • Fix an issue where transaction UNDO logs were not garbage collected (GC) after data was deleted from cold storage.

  • Fixed server crashes that could occur when the metrics of a __ time-series streaming engine containing <count(*)>.

  • Fixed incorrect window boundary handling in createDailyTimeSeriesEngine during multi-session time-series calculations: when useWindowStartTime=true, the output timestamp could incorrectly show the previous window's end time; when mergeSessionEnd was enabled, data at session-end boundaries was not included in the current window, causing incorrect aggregation results (e.g., min, max).

  • Fixed server crashes that could occur when executing a function view to call createAsofJoinEngine after a restart.

  • Fixed a crash that occurred when continuously writing array vectors to a stream table, caused by an integer overflow in the internal capacity check.

  • Fixed an issue where Streaming HA subscriptions could fail when the topic name was too long.

  • Fixed an issue where recovery could fail and writes might not continue because the start position of the persisted data file was abnormal when the high-availability flow table cleaned up Raft files after OOM and recovered from the Leader.

  • Fixed an issue where writes to DFS tables could fail because chunks were in the RECOVERING state after an abnormal cluster shutdown and restart when highly available stream table subscriptions wrote to DFS tables.

  • Fixed an issue where data nodes might fail to start after the Leader node was powered off and restarted while using the Python API to concurrently write to a high-availability stream table with multiple processes in a high-availability cluster.

  • Fixed an issue where irDepositPricer did not include same-day cash flows in the price when the pricing date was a cash flow date, resulting in incorrect valuation results.

  • Fixed an issue where concurrent queries during within-node rebalance (rebalanceChunksWithinDataNode) could return empty results or columns filled with NULL values.

  • Fixed an issue where the web interface became unresponsive (unable to log in or cancel jobs) when the server was under heavy load (e.g., all worker threads occupied by long-running tasks).

  • Fixed an issue where the configuration parameter thirdPartyAuthenticator was ineffective in standalone mode.

  • Fixed an issue where the asynchronous log writer could continue writing to a closed log stream after being stopped, potentially causing a crash when writing logs.

  • Fixed an issue where, after adding or modifying cluster configurations on the Web and restarting data nodes, high-availability stream initialization incorrectly reported that clusterName was not configured, causing data nodes to fail to start.

  • Fixed an issue where plugins specified by the preloadModules configuration could block server startup if they failed to load; plugin exceptions now only affect their related functionality.

  • Fixed an issue where the server incorrectly performed URL decoding on the request body when executing scripts via the JSON API with Content-Type set to text/plain or application/json, causing + characters in scripts to be decoded as spaces and resulting in parsing errors.

  • Fixed an issue where objs(true) could return duplicate objects and memory usage could keep increasing, eventually leading to OOM, when share and undef were executed concurrently.

  • Fixed a crash that could occur during recursive directory removal when cleaning up PPT spill files in the destructor.

  • Fixed an issue where the comment field was lost after database backup and restore.

  • Fixed the following issues in INTEGRAL type parsing:

    • Fixed an issue where parsing results were not as expected when importing SHORT, INT, or LONG data in scientific notation through loadText.

    • Fixed an issue where the minus sign could be lost when a negative LONG value ended with trailing spaces.

  • Fixed an issue where the gmm function returned null values under certain data distributions (e.g., when extremely small variance caused probability underflow).

  • Fixed an issue where the interval function returned inaccurate error messages when duration was set to month or year and the step parameter or a fill parameter other than none was used.

Deprecated

  • Removed the snapshot engine and related code. Using [HINT_SNAPSHOT] in SQL queries now returns an error indicating that SnapshotEngine is no longer supported.

  • Optimized stream computing UPDATE semantics by deprecating the original changelog mechanism and its functions: changelogStreamTable, peekappend, getStreamTableChangelog, changelogSource, changlogBuffer, and changelogSink.

  • Optimized the bond cashflow handling logic so that custom cashflow inputs are no longer supported when constructing bonds, avoiding conflicts with built-in presets.