3.00.0
Version: 3.00.0 Compatibility Level 2 with 2.00.11 & 1.30.23
For details, see Compatibility Changes.
Release Date: 2024-04-03
Available Downloads:
New Features
-
Added function
fromStdJson
for parsing standard JSON objects into DolphinDB variables. (3.00.0.2) -
Added function
parseInteger
(aliasparseInt
) for converting strings into integers with specified numeral system. (3.00.0.2) -
Added functions
backupSettings
andrestoreSettings
to back up and restore settings on users, permissions and function views for database migration. (3.00.0.2) -
Added functions
VaR
andCVaR
to calculate value at risk and conditional value at risk. (3.00.0.1) -
Added functions
nss
andnssPredict
to fit the yield curve and predict the bond yield. (3.00.0.1) -
Introduced Python Parser for parsing Python scripts. It integrates Python syntax with DolphinDB scripting language, which supports:
-
Parsing native Python data structures, built-in functions, and most programming features including assignments, statements, function definitions, list comprehensions, classes, etc.
-
Using pandas
DataFrame
,Series
, andIndex
(SingleIndex
only) classes, and some methods. -
Using DolphinDB data forms and built-in functions.
-
Using basic SQL functionalities, including creating databases and tables, appending and querying data, etc.
-
-
Added CEP (Complex Event Processing) Engine for aggregating, processing, and analyzing event streams in order to gain real-time insights from events as they occur. This engine allows:
- Defining event types with Class.
- Dynamically adding multiple event matching rules.
- Customizing event handling functions.
- Flexible event processing order.
- Visualizing data in the CEP engine with Data View Engine.
- Distributing events across threads for parallel processing.
-
Added support for Global Catalog to conveniently query DFS databases, cluster nodes and other resources.
-
Introduced IMOLTP storage engine, which enables:
-
Saving data in memory to avoid disk I/O overhead.
-
Adopting row-oriented storage format, suitable for OLTP scenarios.
-
Creating B+ Tree index (primary/secondary index) for frequent and high-concurrent updates and queries.
-
-
Added GPLearn Engine implementing genetic programming using GPUs for automated factor mining.
-
Added support for Class in DolphinDB scripting language.
-
The reactive state engine supports defining factors via OOP.
-
Added support for UDP in streaming publishing and subscription, which optimizes network bandwidth when multiple subscribers receive from a single publisher and increases data transferring efficiency.
-
Added function
matrixRank
to calculate the rank of a matrix. -
Added function
bondAccrInt
to calculate the accrued interest of securities. -
Added function
pinverse
to find the pseudoinverse of a matrix. -
Added function
geoWithin
to determine whether a point lies inside or outside a polygon. -
Added functions
getDfsRecoveryConcurrency
andresetDfsRecoveryConcurrency
to get and set the maximum concurrency of data recovery tasks on the controller. -
Added functions
getDfsRebalanceConcurrency
andresetDfsRebalanceConcurrency
to get and set the maximum concurrency of data rebalancing tasks on the controller. -
Added function
getTSDBTableIndexCacheStatus
to check the memory usage of the level file indices of TSDB tables loaded on the current node. -
Added function
rowGroupby
for aggregation grouped by rows. -
Added function
wslr
for weighted single linear regression. -
Added function
digitize
to bucket data based on specific bin values. -
Added function
lowerBound
to find the first element that is greater than or equal to a specific value and return its index in an increasing object. -
Added function
fmin
to minimize a function using a Nelder-Mead simplex algorithm. -
Added functions
pdfF
,pdfChiSquare
, andpdfNormal
to calculate probability density of F, chi-square, and normal distributions. -
Added function
createReactiveStateLessEngine
which maintains states and outputs calculation results based on associated data for each data injection. -
Added function
kroghInterpolate
for polynomial interpolation of a set of points. -
Added mTopN function:
mpercentileTopN
. -
Added m-functions:
mfirstNot
,mlastNot
,mLowRange
,mTopRange
. -
Added functions
minIgnoreNull
andmaxIgnoreNull
for obtaining the min and max values with NULLs ignored. -
Added tm-functions:
tmLowRange
,tmTopRange
. -
Added support for ZSTD compression algorithm.
-
Added function
setDynamicConfig
to dynamically set a specified configuration parameter. -
Added function
getDynamicConfig
to list all dynamically-modifiable configuration parameters. -
Added configuration parameter decimalRoundingMode to set the rounding method for DECIMAL values.
-
Added configuration parameter checkExistingPartitionNumForQuery to use the number of existing partitions obtained from the controller for queries.
-
Added configuration parameter enableAuditLog to enable audit logs. Added function
getAuditLog
to query audit logs and configuration parameter auditLogRetentionTime to set audit log retention time. -
Added configuration parameter enableNullSafeJoin to determine whether NULL values are allowed to match other NULL values during join operations.
-
Added function
setStreamTableTimestamp
to attach a timestamp column to a stream table to record the data ingestion time. -
The following features are supported in DolphinDB JIT version:
- Set and dictionary forms;
- STRING and SYMBOL types;
- Multiple return values;
- Creating array vectors.
-
The
use
keyword can be used to call .dom module files in scripts. -
Added support for creating a matrix of DECIMAL or STRING type.
-
Added support for using macro variables and column series in SQL statements.
Improvements
-
The parameter groupingCol of function
groupby
now supports specifying a tuple with vectors of the same length. (3.00.0.2) -
The parameter sortDirections of function
sortBy!
can be specified for a keyed table. (3.00.0.2) -
The function
fixedLengthArrayVector
now supports concatenating fixed-length array vectors. (3.00.0.2) -
Added support for fitness functions
groupby
andcontextby
in the Shark GPLearn engine. (3.00.0.2) -
Added support for helper functions
std
,stdp
,skew
,kurtosis
, andrank
in the Shark GPLearn engine. (3.00.0.2) -
Added parameter keyFilter to function
createCrossSectionalEngine
to enable key selection with filtering conditions. (3.00.0.2) -
Optimized the event matching performance of CEP engine. (3.00.0.2)
-
Added parameter verbose for
createGPLearnEngine
to set whether to output training information. (3.00.0.1) -
Added parameter minimize for
createGPLearnEngine
to set whether to minimize or maximize fitness. (3.00.0.1) -
More helper functions are supported for defining GPLearn Fitness functions. (3.00.0.1)
Issues Fixed
-
[D20-17505] Fixed occasional server crashes caused by LEFT JOIN. (3.00.0.3)
-
[D20-17716] Fixed incorrect results when using function
ej
on keyed in-memory tables. (3.00.0.3) -
[D20-18554] Fixed an issue where a chunk path corresponded to multiple chunk IDs in extreme cases. (3.00.0.3)
-
[D20-18780] Fixed a system failure to skip cluster replication tasks with corrupted data, which resulted in endless retry attempts. (3.00.0.3)
-
Fixed server crashes caused by SQL queries when the first argument of
interval
was not a column. (3.00.0.2) -
Fixed an issue where minPeriods of function
mmad
did not take effect. (3.00.0.2) -
Fixed server crashes caused by SQL queries if a database path was not a string. (3.00.0.2)
-
Fixed incorrect results of distributed queries if
context by
clause involved more than two columns and thecsort
clause included these context-by columns. (3.00.0.2) -
Fixed an issue where replay tasks got stuck if the number of workers was significantly smaller than the number of partitions. (3.00.0.2)
-
Fixed an error in SQL queries with
pivot by
clause when theselect/exec
clause contained expressions. (3.00.0.2) -
Fixed an error when restoring manual backup files from Amazon S3. (3.00.0.2)
-
Fixed an error when querying an empty table where the
select
clause called functioneachPre
and the SQL query containedcontext by
clause. This issue was introduced in version 2.00.11.1. (3.00.0.2) -
Fixed precision loss of DECIMALs when writing streaming data to a DFS table with batchSize set to 1. (3.00.0.2)
-
Fixed occasional incorrect results of metaprogramming with macro variables when applying function patterns to multiple columns by group, particularly with aggregate or order-sensitive functions. (3.00.0.2)
-
Fixed an issue where the equal
=
sign inwhere
conditions did not take effect if a STRING or SYMBOL partitioning column of a VALUE-partitioned table contained decimal points or other special characters. This issue was introduced in version 3.00.0. (3.00.0.2) -
Fixed an error reported when aggregating joined columns. (3.00.0.2)
-
Fixed server crashes caused by SQL queries calling
ols
within the higher-order functionmoving
. (3.00.0.2) -
Fixed server crashes where Raft was not initialized while HA stream tables were already loaded during a node reboot. (3.00.0.2)
-
Fixed incorrect result of executionSet returned by
getSlaveReplicationQueueStatus
if a Leader was switched to Follower and then re-elected as Leader. (3.00.0.2) -
Fixed
Unrecognized column name
error for queries usingej
on DFS tables and external variables inwhere
conditions. (3.00.0.2) -
Fixed the error
SQL context is not initialized yet. RefId: S02011
reported when specifying the condition ofaddEventListener
to attributes of Monitor. (3.00.0.1) -
Fixed server crashes on the ARM version caused by multi-threaded queries. (3.00.0.1)
-
Fixed server crashes caused by concurrent
select
andappend!
operations on in-memory tables after resource tracking was enabled. (3.00.0.1) -
Fixed an issue where the execution of
clearCachedModules
in console did not take effect. (3.00.0.1) -
Fixed server crashes when using the
head
function in the aggs parameter ofwj
. (3.00.0.1) -
Fixed server crashes caused by compilation failure during recursive or nested calls to JIT functions. (3.00.0.1)
-
Fixed server crashes caused by a distributed query with the WHERE clause containing functions that generated temporary variables. (3.00.0.1)
-
Fixed an issue where the analytic function could not recognize the column used in multiple joins. (3.00.0.1)
-
Fixed an issue where the
schema
function returned an incorrect partitionSchema that contained partitions already dropped with functiondropPartition
(with deleteSchema= true specified). -
Fixed an issue where the result of the
iif
function was incorrectly typed as a STRING when the output was intended to be metacode. -
Fixed an error for function
getFunctionViews
when the returned function body was excessively large. -
Fixed an issue where the result of each function call was not being properly removed when the function contained
cast($)
operations used to convert the data type to the same type. -
Fixed server crashes when the results of
lshift
(<<) andrshift
(>>) contained NULL values. -
Fixed an issue where replicas of chunks could be copied to a compute node using the
copyReplicas
function. -
Fixed an issue where the
format
function returned incorrect results when applying a specified format to DECIMAL objects. -
Fixed server crashes when using function
med
with excessively large data. -
Fixed server crashes when passing a tuple with non-vector elements to the
nunique
function. -
Fixed incorrect results when both X and Y of the
asof
function input vectors containing only NULL values. -
Fixed an issue where appending data to a vector ignored the maximum size limit. An error will now be reported in such cases.
-
Fixed an issue where the
lj
,aj
and other join-related functions did not support keyword parameters. -
Fixed an issue where the
database
function failed to create an in-memory database with enableLocalDatabase=false configured. -
Fixed an issue with the
sqlDS
function where partition pruning was not applied when the SQL statement specified in the sqlObj parameter contained the IN keyword in the WHERE clause. -
Fixed an issue in standalone mode, where transactions were incorrectly replayed due to the edit log being written before the redo log.
-
Fixed incorrect results returned by the reactive state engine when calculating the
cummin
function with the following types of data: UUID, INT128, IPADDR, COMPLEX and POINT. -
Fixed an error occurred when comments were placed between the function name and the function body.
-
Fixed an issue where the cleanup process for expired files of persistent stream tables would get stuck in an infinite loop if it encountered a non-existent file.
-
Fixed an issue where the presence of stale partitions could potentially cause data from new partitions located under the same path to be garbage collected.
-
Fixed server crashes when calculating DECIMAL array vectors in a query with PIVOT BY clause.
-
Fixed server crashes when using both
CASE
andWHERE NOT
keywords in a single query. -
Fixed an error that reported when using three or more
UNION ALL
keywords in a singleSELECT FROM
statement. -
Fixed inconsistent query results when using double quote ("") and single quotes ('') in the WHERE condition to filter the CHAR column of a DFS table.
-
Fixed incorrect query results on a sorted keyed table
-
Fixed an issue where assigning a matrix to multiple output columns in a query returned incorrect results.
-
Fixed server crashes when using
exists
keyword in a query containing joins of multiple partitioned tables. -
Fixed an issue where using a non-aggregate function in the SELECT statement did not report an error when grouping value-partitioned columns using the GROUP BY clause. An error will now be reported in such cases.
-
Fixed an error that occurred when the query result contained an array vector and the PIVOT BY clause included sort keys.
-
Fixed an error that occurred when using a function with multiple return values in combination with a WHERE clause in a query.
-
Fixed server crashes due to an out-of-bounds error when accessing an array in metrics of a time-series engine with useSystemTime=true specified.
-
Fixed a parsing issue in time-series engines for functions that return array vectors.
-
Fixed an issue where a write failure to a persisted table could disrupt data consumption for the subscription.
-
Fixed server crashes when the number of metricNames did not match that of factors specified in metrics for function
createNarrowReactiveStateEngine
. -
Fixed an error when using the
nullFill!
function in a reactive state engine. This error was introduced in version 2.00.11.2. -
Fixed server crashes when the formal parameter of the JIT function had the same name as the built-in functions.
-
Fixed an issue where the newly appended element to a vector within a JIT function could not be accessed or modified by indexes.
-
Fixed incorrect results returned by the JIT function when calculating a vector that had NULL values appended or assigned to it.