2.00.12
Version: 2.00.12 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 parameter minPeriods to functions
mcount
andmrank
for specifying the minimum number of observations in a window. (2.00.12.6) -
Added the new function
createStreamBroadcastingEngine
for creating an engine that broadcasts streaming data. (2.00.12.4) -
Added function
fromStdJson
for parsing standard JSON objects into DolphinDB variables. (2.00.12.2) -
Added function
parseInteger
(aliasparseInt
) for converting strings into integers with specified numeral system. (2.00.12.2) -
Added functions
backupSettings
andrestoreSettings
to back up and restore settings on users, permissions and function views for database migration. (2.00.12.2) -
Added functions
VaR
andCVaR
to calculate value at risk and conditional value at risk. (2.00.12.1) -
Added functions
nss
andnssPredict
to fit the yield curve and predict the bond yield. (2.00.12.1) -
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
-
Enhanced the security of the login system by implementing IP-specific lockouts. Multiple failed login attempts occur from a particular IP address will temporarily block further login attempts only from that specific IP. (2.00.12.6)
-
For TSDB databases configured to retain all data (keepDuplicated set to ALL), the
upsert!
function no longer requires specifying the keyColNames parameter for all sort columns. (2.00.12.6) -
Enahanced user access control for function views and module functions. (2.00.12.4)
-
Enhanced the performance of queries for finding maximum and minimum values on partitioning columns. (2.00.12.4)
-
The parameter groupingCol of function
groupby
now supports specifying a tuple with vectors of the same length. (2.00.12.2) -
The parameter sortDirections of function
sortBy!
can be specified for a keyed table. (2.00.12.2) -
The function
fixedLengthArrayVector
now supports concatenating fixed-length array vectors. (2.00.12.2) -
Added parameter keyFilter to function
createCrossSectionalEngine
to enable key selection with filtering conditions. (2.00.12.2) -
Optimized the performance of heterogeneous replay at maximum speed. (2.00.12.1)
-
Added parameter read for the
license
function to determine whether to verify the license file before returning the result. (2.00.12.1) -
For the sortKeyMappingFunction parameter of function
createPartitionedTable
, if the mapping function ishashBucket
, buckets now can be set as 1. (2.00.12.1) -
Optimized the query performance on TSDB tables when using IN condition on sort keys. (2.00.12.1)
-
Enhanced system security with encrypted passwords. (2.00.12.1)
-
Optimized the performance of TSDB engine when reading data from cache engine.
-
The sortColumns parameter specified for a TSDB table now supports DECIMAL type.
-
Added support for setting priority queues at the database level for asynchronous replication.
-
Added support for tiered storage in a standalone mode.
-
The
rebalanceChunksWithinDataNode
function now can be called in a standalone mode. -
Enhanced the partition pruning logic when using IN keyword within a WHERE clause.
-
Added alias
createDimensionTable
for thecreateTable
function. -
Optimized the performance of functions
lasso
andElasticNet
. -
Added parameter ignoreNull for functions
nunique
andcumnunique
, which specifies whether to return only the unique non-NULL elements. -
Increased the maximum allowed precision for the
round
function to 10 digits. -
Soft delete for TSDB databases now can be enabled in a CREATE TABLE statement with the newly-added parameter softDelete.
-
Added the execution plan for queries involving join operations in [HINT_EXPLAIN].
-
Added the execution plan for the WHERE clause in [HINT_EXPLAIN] to monitor the pre-filtering execution phase for queries on TSDB tables.
-
The following functions now can be called on a compute node:
createUser
,createGroup
,resetPwd
,changePwd
,deleteUser
,deleteGroup
,addGroupMember
,deleteGroupMember
,grant
,deny
,revoke
,setMaxJobPriority
,setMaxJobParallelism
,getUserList
,getGroupList
,getGroupsByUserId
,getUsersByGroupId
,getUserAccess
,getGroupAccess
. -
Functions
mifirstNot
,miLastNot
,mfirstNot
,mlastNot
,mimax
,mimin
now support indexed series and indexed matrix. -
'DFLT' now can be set for keyword parameters to fix optional parameters as default values within a partial application.
-
Added parameter n for functions
deltas
andpercentChange
to enable calculations across multiple rows. -
The reactive state engine now supports invoking the functions
prev
andmove
on array vector columns. -
UPDATE statement now supports CSORT and HAVING clauses.
-
Added parameter bondType for functions
fiDirtyPrice
,fiDuration
, andfiConvexity
to support multiple bond types including zero-coupon bond and discount bond. -
Array vector columns are now supported in keyed tables, keyed stream table, and indexed tables.
-
Added the arrayMarker parameter for functions
loadText
,loadTextEx
,ploadText
, andtextChunkDS
to specify an identifier to distinguish imported array vector. -
Optimized the performance of
cross join
. -
Optimized the performance when joining a dimension table and DFS table.
-
Added parameter anomalyDescription for function
createAnomalyDetectionEngine
to customize the detailed description for anomalies. -
The
replayDS
function now can accept input tables containing DECIMAL columns. -
Optimized the performance when retrieving distinct values of a single column using
distinct
. -
Enhanced the
createCrossSectionalEngine
function with the following changes:-
The contextByColumn now can be a STRING vector.
-
Added parameter outputElapsedMicroseconds to output the elapsed time and total rows of each calculated batch.
-
Added parameter roundTime to align the window boundary when triggeringPattern='dataInterval'.
-
-
warmupStreamEngine
now supports time series engine. -
The func parameter of the
moving
function now accepts aggregate functions that return a tuple. -
Added parameter map for the
sql
function to generate SQL statements withmap
keyword. -
Optimized the performance of built-in aggregate functions operating on matrices.
-
Enhanced the
createTimeSeriesEngine
andcreateDailyTimeSeriesEngine
functions with the following changes:-
Added parameter parallelism to support multi-threaded execution of metrics in the time-series engine.
-
Added parameter acceptedDelay to set the maximum allowable delay for data reception when useSystemTime= true.
-
-
The
print
function is now supported in metrics of streaming engines. -
The system now logs startup commands during the startup process.
-
Optimized the concurrency performance when joining multiple tables.
-
Added parameter usePinv for the
ols
function to determine whether to use pseudo-inverse method to calculate inverse of a matrix. -
Added parameter excludedPeriod for the
tmoving
function to skip the calculation for specific time period. -
Added support for updating array vector columns of DFS tables.
-
Modified the behavior of function
at
when it is served as a higher-order function. When X is a function and index is a tuple, each element of index is passed as an argument to the X. -
The higher-order function
each
now allows a function with two or more arguments, where the first argument is a dictionary. -
Optimized data rebalancing algorithms.
-
Added parameter updatedBeforeDays for functions
rebalanceChunksAmongDataNodes
andrebalanceChunksWithinDataNode,
which limits the rebalancing process to only include data that was last updated before updatedBeforeDays days. -
The higher-order function
cross
now allows a function that returns values of CODE, FUNCTIONDEF, STRING, or BLOB type. -
Removed the restriction on time precision for WHERE conditions involving comparisons of time values in distributed queries.
-
In standalone mode, writing to distributed tables is restricted if the data size of a write operation exceeds the capacity of the cache engine.
-
Added support for defining vectors or tuples across multiple lines.
-
Enhanced the Analytic Function (Window Function) with the following changes:
-
Added support for the following functions:
imin
,imax
,iminLast
,imaxLast
,firstNot
,lastNot
,sum2
,prod
,percentile
,wavg
,wsum
,corr
,covar
,beta
,atImax
,atImin
. -
RANGE can be used to define a window frame based on time values.
-
Added support for GROUP BY clause and allowed to nest aggregate function.
-
Issues Fixed
-
[D20-18152] Fixed an issue where interactive jobs submitted through Web interface or VS Code extension by users with lower-than-default priority (or parallelism) still used default values. (2.00.12.6)
-
[D20-18245] Fixed an error of the
backup
function on a compo-partitioned database if the filter condition matched the first-level partition and some second-level sub-partitions were empty. (2.00.12.6) -
[D20-18312] Fixed a server crash when querying an array vector column with
distinct
. (2.00.12.6) -
[D20-18356] Fixed an issue where queries failed during
ej
operation if the table name was not specified in thewhere
condition. (2.00.12.6) -
[D20-18423] Fixed system crashes after executing the
createWindowJoinEngine
function with invalid parameters. (2.00.12.6) -
[D20-18122] Fixed an error where using the
move
function may lead to incorrect calculation results if the input data was an intermediate result. (2.00.12.6) -
[D20-18219] Fixed occasional crashes when executing the
mpercentile
function multiple times. (2.00.12.6) -
[D20-18331] Fixed an error in JIT when using the
rank
function due to type inference issues. (2.00.12.6) -
[D20-18291] Fixed an error in JIT when using the
isort
function due to compatibility issues. (2.00.12.6) -
Fixed incorrect equi join (
ej
) results of keyed tables. (2.00.12.4) -
Fixed occasional redo log replay failures that occurred when function views were being added or deleted concurrently during a checkpoint operation. (2.00.12.4)
-
Fixed an issue where queries on a dimension table occasionally failed when dimension table cache was being released concurrently. (2.00.12.4)
-
Fixed an issue where asynchronous replication would get stuck in the slave cluster when multiple tables in a database were truncated concurrently. (2.00.12.4)
-
Fixed an issue of hanging nodes when modules loaded with configuration parameter preloadModules contained recursive function calls. (2.00.12.3)
-
Fixed occasional login failures during client reconnection. (2.00.12.3)
-
Fixed occasional server crashes when replaying redo logs for excessively time-consuming TSDB transactions. (2.00.12.3)
-
Fixed occasional server crashes caused by
left join
. (2.00.12.3) -
Fixed inaccurate memory usage statistics for array vectors. (2.00.12.3)
-
Fixed server crashes caused by SQL queries when the first argument of
interval
was not a column. (2.00.12.2) -
Fixed an issue where minPeriods of function
mmad
did not take effect. (2.00.12.2) -
Fixed server crashes caused by SQL queries if a database path was not a string. (2.00.12.2)
-
Fixed incorrect results of distributed queries if
context by
clause involved more than two columns and thecsort
clause included these context-by columns. (2.00.12.2) -
Fixed an issue where replay tasks got stuck if the number of workers was significantly smaller than the number of partitions. (2.00.12.2)
-
Fixed an error in SQL queries with
pivot by
clause when theselect/exec
clause contained expressions. (2.00.12.2) -
Fixed an error when restoring manual backup files from Amazon S3. (2.00.12.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. (2.00.12.2) -
Fixed precision loss of DECIMALs when writing streaming data to a DFS table with batchSize set to 1. (2.00.12.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. (2.00.12.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 2.00.12. (2.00.12.2) -
Fixed an error reported when aggregating joined columns. (2.00.12.2)
-
Fixed server crashes caused by SQL queries calling
ols
within the higher-order functionmoving
. (2.00.12.2) -
Fixed server crashes where Raft was not initialized while HA stream tables were already loaded during a node reboot. (2.00.12.2)
-
Fixed incorrect result of executionSet returned by
getSlaveReplicationQueueStatus
if a Leader was switched to Follower and then re-elected as Leader. (2.00.12.2) -
Fixed
Unrecognized column name
error for queries usingej
on DFS tables and external variables inwhere
conditions. (2.00.12.2) -
Fixed server crashes on the ARM version caused by multi-threaded queries. (2.00.12.1)
-
Fixed server crashes caused by concurrent
select
andappend!
operations on in-memory tables after resource tracking was enabled. (2.00.12.1) -
Fixed an issue where the execution of
clearCachedModules
in console did not take effect. (2.00.12.1) -
Fixed server crashes when using the
head
function in the aggs parameter ofwj
. (2.00.12.1) -
Fixed server crashes caused by compilation failure during recursive or nested calls to JIT functions. (2.00.12.1)
-
Fixed server crashes caused by a distributed query with the WHERE clause containing functions that generated temporary variables. (2.00.12.1)
-
Fixed an issue where the analytic function could not recognize the column used in multiple joins. (2.00.12.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.