3.00.4

Note:
We also recommend reading Compatibility Changes.

Version: 3.00.4 | Compatibility Level 2 with 3.00.3

Release Date: 2025-09-05

Available Downloads:

New Features

  • Added parameter cgroupBy for function sql to generate metacode including a cgroup by clause. (3.00.4.3)
  • Added support for module marketplace features: (3.00.4.3)
    • 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 support for encrypting dos files through function encryptModule. (3.00.4.3)
  • Added support for mr to process data sources from multiple different tables. (3.00.4.3)
  • Added support for secure HTTPS connections between the MCP server and MCP clients. (3.00.4.3)
  • Added vector similarity and distance computation functions: (3.00.4.3)
    • 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 new configuration parameter oauthAllowPasswordLoginNodes to specify the aliases of nodes that allow username-password authentication. (3.00.4.2)
  • Added function attributeTypes to retrieve all attributes of a class along with their corresponding types.(3.00.4.2)
  • Added support for MCP Server:(3.00.4.2)
    • Connecting from Dify.
    • Deploying DolphinDB Server in cluster mode.
  • Added License control to the low-latency engine; a special License is now required for use.(3.00.4.2)
  • Added an exit code to the return value of the socp function.(3.00.4.2)
  • Added new function bondInstrumentCalculator to perform mutual conversion among a bond's yield to maturity, clean price, and dirty price. (3.00.4.1)
  • Added support for the HTTP protocol in Single Sign-On (SSO). (3.00.4.1)
  • Added new configuration parameter maxRecursiveDepth to set maximum recursive depth. (3.00.4.1)
  • Added function histogram for computing the histogram of a dataset. (3.00.4.1)
  • Added FICC-related functions to retrieve the corresponding member values ​​of instruments. (3.00.4.1)
  • Added support for instruments of UserDefined productType. (3.00.4.1)
  • Added function bondYieldCurveBuilder for building bond yield curves (bootstrapping spot rates from yields to maturity).
  • Added function irSingleCurrencyCurveBuilderfor building a single-currency interest rate swap yield curve.
  • Added function irCrossCurrencyCurveBuilder for building cross-currency interest rate swap (implied foreign currency) yield curves.
  • Added function fxVolatilitySurfaceBuilder for building FX option volatility surfaces.
  • Added function bondPricer for pricing an individual bond.
  • Added function bondFuturesPricer for pricing bond futures contracts.
  • Added function irDepositPricer for pricing deposits.
  • Added function irFixedFloatingSwapPricer for pricing plain-vanilla interest rate swaps.
  • Added function fxForwardPricer for pricing FX forward contracts.
  • Added function fxSwapPricer for pricing FX swaps.
  • Added function fxEuropeanOptionPricer for pricing FX European options.
  • Added function instrumentPricer for batch pricing of financial contracts.
  • Added function portfolioPricer for portfolio pricing of financial contracts.
  • Added function parseInstrument for serializing financial contracts into INSTRUMENT objects.
  • Added function parseMktData for serializing market data into MKTDATA objects.
  • Added function extractInstrument for deserializing INSTRUMENT objects.
  • Added function extractMktData for deserializing MKTDATA objects.
  • Added function curvePredict for predicting values at specified times on a given curve.
  • Added function optionVolPredict for predicting volatilities at specified times and strikes on a given volatility surface.
  • Added functions StreamGraph::updateRule and StreamGraph::deleteRule for persistent rule updates in the Orca rule engine.
  • Added function DStream::udfEngine for creating UDF engines with side-effect and state persistence support.
  • Added function getUdfEngineVariable to query external variable values defined in DStream::udfEngine.
  • Added function getOrcaDataLineage for querying data lineage of stream graph tables and Orca time-triggered job information.
  • Added functions createNearestJoinEngine and DStream::nearestJoinEngine for creating nearest-neighbor join engines in stream computing.
  • Added function StreamGraph::dropGraph for dropping stream graphs.
  • Added functions startStreamGraph and stopStreamGraph for controlling stream graph execution.
  • Added functions createOrcaStreamTable, createOrcaKeyedStreamTable, createOrcaLatestKeyedStreamTable, createOrcaHaStreamTable, and createOrcaHaKeyedStreamTable for creating Orca stream tables without stream graphs.
  • Added function dropOrcaStreamTable for dropping Orca stream tables.
  • Added streaming SQL for continuous querying and real-time updates.
  • Added function roll for defining custom sliding windows.
  • Added functions addMCPTool, updateMCPTool, dropMCPTool, callMCPTool, listMCPTools, publishMCPTools, and withdrawMCPTools for MCP tool development and management.
  • Added functions addMCPPrompt, updateMCPPrompt, dropMCPPrompt, listMCPPrompts, getMCPPrompt, publishMCPPrompts, and withdrawMCPPrompts for MCP prompt template management.
  • Added new permissions: MCP_MANAGE, MCP_DEVELOP, and MCP_EXEC.
  • Added function getClusterVolumeUsage for checking disk usage across cluster nodes.
  • Added functions getIPConnectionLimit and setIPConnectionLimit for managing external connections by IP.
  • Added functions getExecDir and getWorkDir for retrieving the dolphindb executable directory and working directory.
  • Added function getRawScriptLog for querying raw script logs.
  • Added configuration parameters enableRawScriptLog, rawScriptLogRetentionTime, maxRawScriptLogSize for logging raw scripts and execution details.
  • Added configuration parameter enableSharedVarCreationControl for controlling whether users can create shared variables.
  • Added configuration parameter processVectorFunctionOverTupleByRow for controlling how vector functions are applied to tuples/dictionaries.
  • Added configuration parametersstreamingRaftLearners and crossClusterRaftWorkerNum for configuring Raft learner nodes.
  • Added configuration parameter streamingRaftGroupAliases for assigning aliases to Raft groups.
  • Added snapshot mechanism support with parameters snapshotDir and snapshotIntervalInMsgCount in createTimeBucketEngine, createNarrowReactiveStateEngine, createCryptoOrderBookEngine, createOrderBookSnapshotEngine, createRuleEngine, and createReactiveStatelessEngine.
  • Added function dropDataViewEngine for removing specific data view engines in CEP.
  • Added function matchFuzzy for fuzzy matching queries.
  • Added support for text vectorization .
  • Added function createExternalTable for creating external tables.
  • Added support for table joins in MoM cluster.
  • Added function semiannualBegin and semiannualEnd for retrieving the first and last day of the semiannual period.
  • Added function recursiveSplitText for recursive text splitting by delimiters.
  • Added function renameCatalogName for renaming the name part of fully qualified names.

Improvements

  • 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. (3.00.4.3)
  • Optimized memory usage of the persistent stream table during reload. (3.00.4.3)
  • Changed the root job ID of stream processing to a random UUID. (3.00.4.3)
  • Added optional parameter surfaceName to fxVolatilitySurfaceBuilder for specifying the name of the generated FX option volatility surface. (3.00.4.3)
  • Optimized the instrument data structure containing the notional field by splitting notional into notionalAmount and notionalCurrency (3.00.4.3)
    • Added function getInstrumentNotionalCurrency for retrieving the notional currency of an instrument.
    • Added function getInstrumentNotionalAmount for retrieving the notional amount of an instrument.
  • Optimized the expired chunk version reclamation mechanism. (3.00.4.3)
  • Added permission control to listMCPPrompts and listMCPTools. (3.00.4.3)
  • Added support for displaying the node alias in the return values of getAclAuditLog and getAuditLog. (3.00.4.3)
  • Optimized the thread allocation algorithm for subscribeTableto prioritize idle threads when hash is not specified.(3.00.4.2)
  • Optimized the subWorkers table returned by getStreamingStat so that workerId is returned even when no data is consumed.(3.00.4.2)
  • Optimized the SSO process(3.00.4.2):
    • 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 matching rules between instruments and marketData for bonds and bond futures.(3.00.4.2)
  • Enhanced syntax exception messages to include the line number.(3.00.4.2)
  • createCrossSectionalEngine supports processing columnar tuples. (3.00.4.1)
  • Enhanced the startup process of the licenseServer client to support authentication and startup via the standby server when the primary server is unavailable. (3.00.4.1)
  • Improved error messages in stream graphs when output data has inconsistent schemas.
  • Extended getStreamGraphInfo to include engine metric information.
  • Extended StreamGraph::haSource, StreamGraph::haKeyedSource, DStream::haBuffer, DStream::haKeyedBuffer, DStream::haSink, and DStream::haKeyedSink: parameter raftGroup now supports Raft group IDs.
  • Extended subscribeTable to support cross-cluster subscription of Orca stream tables.
  • Added support for managing permissions on Orca stream tables.
  • Added parameter includeTables to dropStreamGraph to control whether Orca stream tables inside the graph are also dropped.
  • Added parameter dimReduceCol to createGPLearnEngine to enable downsampling factor mining.
  • Shark Graph now supports the operators rowAvg, rowSkew, rowVar, rowVarp, rowStd, and rowStdp.
  • Optimize disk management mechanism.
  • Improved performance of min/max queries on partition columns of TIMESTAMP type when partitioned by day with VALUE partitioning.
  • Optimized partition pruning to improve performance of queries such as select * from t where id in ids when ids is a TABLE.
  • Improved query performance on VALUE partitioned tables with < or <= filters on partition columns.
  • Improved system performance under high concurrency.
  • Optimized script engine for better expression execution performance.
  • Added support for NANOTIMESTAMP type in the eventTime column of dummyTable for createCryptoOrderBookEngine.
  • Enhanced license function to return additional module and product names: Beluga, Backtest, MatchingEngineSimulator, ORCA, DOLPHINX.
  • Added parameter stat to function getStreamingStat for specifying which status table to return.
  • Added parameter preserveOrder to sliceByKey to control whether results follow the order of rowKeys.
  • Added parameter scoreColName for retrieving text match scores.
  • Added parameter Y to log to specify the logarithm base.
  • Extended at to support integer vectors as parameter X.
  • The outputTables parameter of the replay function now supports stream tables with a timestamp column specified by setStreamTableTimestamp.
  • The handler parameter of the addEventListener function now supports invoking functions outside the monitor class.
  • Extended reverse to support in-memory tables and ordered dictionaries.
  • Binary operations are supported for types of dictionary and tuple.
  • Extended createTimeSeriesEngine and createDailyTimeSeriesEngine to support scalar or vector constants for the metrics parameter.
  • Extended rank and enlist to support dictionaries.
  • Improved dropStreamEngine to forcibly terminate background threads when releasing stream distribution engines.
  • Optimized getConsoleJobs to provide clearer jobType and desc information.
  • Extended parseJsonTable to support parsing arrays in JSON.
  • Added parameter validation to create table.
  • Extended loadText toparse
    • TIME/SECOND/NANOTIME types into TIME/NANOTIME types.
    • DATETIME/TIMESTAMP types into NANOTIMESTAMP type.

Issues Fixed

  • Fixed the issue where an error occurred when appending a VOID column (e.g., generated by SELECT null) to a SYMBOL column. (3.00.4.3)
  • Fixed an 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 ?:. (3.00.4.3)
  • Fixed the issue where context by caused queries on distributed tables to fail under specific scenarios. (3.00.4.3)
  • Fixed the issue where std calculations could produce errors during grouped aggregation on in-memory tables. (3.00.4.3)
  • Fixed the issue where cgroup by could be incorrectly parsed as group by when using macro variables in metacode. (3.00.4.3)
  • 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. (3.00.4.3)
  • Fixed a cluster hang issue caused by concurrent dropTable and write operations. (3.00.4.3)
  • Fixed an issue in the time-series engine where using last, lastNot, or functions that return multiple values with keyPurgeFreqInSec enabled __ could produce incorrect results. (3.00.4.3)
  • Fixed an 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. (3.00.4.3)
  • Fixed the issue where reactive state engines returned incorrect results when processing DECIMAL64‑type columns with deltas. (3.00.4.3)
  • Fixed the issue where results from certain windows were not output when the window parameter of createWindowJoinEngine was set to 0:0 and the number of records within a group exceeded the garbageSize limit. (3.00.4.3)
  • Fixed the issue where the totalRows field returned by getStreamTables overflowed. (3.00.4.3)
  • Fixed an issue where calling ops::clearAllStreamEnv in the Orca environment threw an exception. (3.00.4.3)
  • Fixed an issue where the some output of createMktDataEngine did not adhere to the useSystemTime parameter. (3.00.4.3)
  • Fixed the issue where cached handles were not invalidated during moveReplicas operations in a high-availability cluster, occasionally leading to inconsistent query results. (3.00.4.3)
  • Fixed the issue where the controller process failed to exit after running the stopController.sh script in a high-availability cluster with lanCluster=true. (3.00.4.3)
  • Fixed an issue where getUserTableAccessRecords would throw an error when querying ranges across two or more job files. (3.00.4.3)
  • Fixed an issue where users encounter unexpected permission errors when performing DDL operations in clusters with compute groups. (3.00.4.3)
  • Fix compatibility issues encountered when upgrading from 2.00.16.X/2.00.17.X to 3.00.3.X/3.00.4.X. (3.00.4.3)
  • Fixed the issue where file descriptors occasionally leaked in job checkpoint files. (3.00.4.3)
  • Fixed the issue where getSessionMemoryStat reported incorrect OLAPTablet memory statistics under OOM scenarios, which prevented cache cleanup logic from functioning properly. (3.00.4.3)
  • Fixed the issue where remote script execution occasionally reported errors after using an XDB connection. (3.00.4.3)
  • Fixed the issue where exporting CSV with the saveText function incorrectly handles quotes in fields with the SYMBOL type. (3.00.4.3)
  • Fixed the issue where the result of linearTimeTrend is incorrect when the window is larger than 1024. (3.00.4.3)
  • Fixed the issue where mstd calculations produced incorrect results. (3.00.4.3)
  • Fixed the issue where percentile calculations could trigger segmentation faults. (3.00.4.3)
  • 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. (3.00.4.3)
  • Fixed an incorrect pValue calculation in adfuller when regression='n' and adfStat > 0.(3.00.4.2)
  • Fixed server crashes that could occur when writing data to a reactive state engine with low latency enabled.(3.00.4.2)
  • Fixed an issue where upgrading from 3.00.0.x–3.00.2.x to 3.00.4.x could cause Checkpoint deserialization failures at startup if the old version contained function views or scheduled jobs involving Catalog-related scripts.(3.00.4.2)
  • Fixed an issue where executing an update ... context by ... statement on a shared memory table caused the error “A snapshot table doesn't support data update”.(3.00.4.2)
  • Fixed an issue where inserting data via an INSERT statement failed if a column started with two consecutive NULLs of VOID type.(3.00.4.2)
  • Fixed server crashes that could occur when a field of the SYMBOL type was set as the sortKey in the TSDB engine.(3.00.4.2)
  • Fixed an error that occurred 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.(3.00.4.2)
  • Fixed an issue where data was still pushed to the client when subscribing to a stream table via WebSocket, even if the filtered result was empty.(3.00.4.2)
  • Fixed an issue where registerStreamingSQL failed to parse field names in camelCase.(3.00.4.2)
  • Fixed an error when metrics of createReactiveStateEngine returned multiple array vectors.(3.00.4.2)
  • Fixed an error occurring when executing a query with a WHERE clause containing true == true on compute nodes within a compute group.(3.00.4.2)
  • Fixed an error when subscribing to data published by a 2.00.X cluster from a 3.00.X subscriber.(3.00.4.2)
  • Fixed an issue where the integral function failed when the integration bounds were set to NULL in double integral calculations. (3.00.4.1)
  • Fixed server crashes that could occur when an empty data source was passed to the mr function due to missing input type validation. (3.00.4.1)
  • Fixed server crashes that could occur when a user-defined class method was misused in the metrics of createReactiveStateEngine. (3.00.4.1)
  • Fixed an issue in high-availability cluster where followers failed to shut down properly when the controllers was configured with lanCluster=0. (3.00.4.1)
  • Fixed an issue where submitting multiple tasks concurrently could occasionally trigger a scheduling anomaly, causing the system to become unresponsive. (3.00.4.1)
  • Fixed an issue in high-availability cluster where concurrent getClusterPerf executions from multiple controllers exceeding the number of available worker threads could cause the system to become unresponsive. (3.00.4.1)
  • Fixed occasional errors when the stream subscription contains data of type ANY. (3.00.4.1)
  • Fixed an 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. (3.00.4.1)
  • Fixed an issue where SQL aggregation operations could occasionally cause the server to crash. (3.00.4.1)
  • Fixed an 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. (3.00.4.1)
  • Fixed an error when a line break was followed by an operator at the beginning of the line in a SQL statement. (3.00.4.1)
  • Fixed an 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. (3.00.4.1)
  • Fixed server crashes where inserting an empty vector into a stream table with a timestamp column set by setStreamTableTimestamp. (3.00.4.1)
  • 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. (3.00.4.1)
  • Fixed an issue when subscribing to a stream table with subscribeTable, if the function specified in the filter parameter produced an output schema inconsistent with the input stream table, the system neither outputs data nor reports an error. (3.00.4.1)
  • Fixed an issue where the system could hang when writing to TSDB Database if the number of symbols exceeded the limit. (3.00.4.1)
  • Enhanced Configuration Access Security: (3.00.4.1)
    • Added configuration parameter enableConfigAccessControl to control whether permission checks are applied when accessing configuration parameters.
    • Added function getOauthClientSecret to allow administrator users to securely retrieve the value of the sensitive configuration oauthClientSecret.
    • Updated function getConfig/getConfigure to filter returned results based on the security level of each configuration item and the current user’s permissions when enableConfigAccessControl=true.
  • Fixed incorrect results when the left table in a streaming SQL left join was updated before the right table. (3.00.4.1)
  • Fixed an error that occurred when a streaming SQL keyed table received a single-row insertion containing a columnar tuple. (3.00.4.1)
  • Fixed an issue where bfill produced incorrect results when processing certain special characters.
  • Fixed an issue where temporary files were not reclaimed immediately after an unexpected transaction termination and restart.
  • Fixed a memory leak in the controller when client high availability was enabled.
  • Fixed an issue where scheduled jobs occasionally failed to execute and subscriptions stalled under high system load.
  • Fixed an issue where unexpected interruptions during tiered storage data migration could leave residual files.
  • Fixed a query failure issue when the SYMBOL column contained values ending with \r.
  • Fixed a memory leak in IoT engine under special circumstances.
  • Fixed a resource leak caused by incomplete cleanup when threads exited.
  • Fixed an issue where recovery of controller metadata from data nodes failed when the number of partitions exceeded 10 million.
  • Fixed an issue where the CEP engine did not support functions such as isVoid.
  • Fixed an error when assigning aliases to GROUP BY fields in the SELECT clause.
  • Fixed incorrect query results when using interval.
  • Fixed occasional hangs during concurrent access to stream tables.
  • Fixed an issue in the IMOLTP engine where deleting data did not release memory.
  • Fixed an issue where functions mstd, mstdp, mvar, and mvarp incorrectly returned 0 when X could not fill the window.
  • Fixed an issue where mstdp and mvarp returned incorrect results when the first element of X was NULL.
  • Fixed an issue where dropping a catalog using dropCatalog did not delete its Orca stream graphs.

Deprecated

  • Removed function getInstrumentNotional. (3.00.4.3)