3.00.2

Version: 3.00.2   Compatibility Level 2 with 3.00.1 & 2.00.13

For details, see Compatibility Changes.

Release Date: 2024-10-20

Available Downloads:

New Features

  • Added support for module marketplace features: (3.00.2.7)

    • 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 function encryptModule for encrypting dos files. (3.00.2.7)

  • Enhanced configuration access control: (3.00.2.7)

    • 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.

  • Added function semiannualBegin and semiannualEnd for retrieving the first and last day of the semiannual period. (3.00.2.7)

  • Added configuration parameters enableRawScriptLograwScriptLogRetentionTimemaxRawScriptLogSize to control raw script logging and set log retention and size limits. Added function getRawScriptLog to query raw script logs. (3.00.2.6)

  • Added function gmd5 and rowGmd5 to generate MD5 hashes. (3.00.2.4)

  • Added parameter mergeLastWindow for function createDailyTimeSeriesEngine to handle irregular session periods. (3.00.2.4)

  • Added configuration parameter maxJoinTaskRetry to specify the maximum retry attempts for a single SQL JOIN task under memory pressure. (3.00.2.4)

  • Added functions attributeNames and attributeValues to retrieve all attribute names and values for class instances. (3.00.2.2)

  • Added function createCryptoOrderBookEngine for creating crypto order book streaming engines.Added support for the deployment of license servers on the public network. (3.00.2.1)

  • Added support for storage-compute separation by configuring compute groups.

  • Added TextDB, a text retrieval database system built on the PKEY storage engine.

  • Added iotDB Engine for management of device nodes.

  • Added support for multi-cluster management, enabling the management of multiple clusters through MoM (Master of Master).

  • Added support for the deployment of license servers on the public network.

  • Added function oauthLogin and 11 related configuration parameters to support OAuth Single Sign-On (SSO).

  • Replaced the memory manager from tcmalloc_minimal with tcmalloc and added functions startHeapSample, dumpHeapSample, and stopHeapSample for heap sampling.

  • Added function differentialEvolution to calculate the global minimum of a multivariate function using the Differential Evolution algorithm.

  • Added function vanillaOption to price vanilla options.

  • Added function varma to analyze multivariate time series using a Vector Autoregressive Moving-Average (VARMA) model.

  • Added function garch to model the conditional volatility of univariate time series using the generalized autoregressive conditional heteroskedasticity (GARCH) model.

  • Added function bondCashflow to calculate the cash flow for a bond with a face value of 100.

  • Added function maxDrawdown (alias: mdd) to calculate the maximum drawdown or the maximum drawdown rate of the input vector.

  • Added function bondYield to calculate the bond yield of a bond based on its price.

  • Added function histogram2d to calculate the two-dimensional histograms for two datasets.

  • Added function kroghInterpolateFit to perform polynomial interpolation for a given set of points.

  • Added function linearInterpolateFit to perform linear interpolation for a given set of points, which supports both interpolation and extrapolation.

  • Added function getRules to get the rules of the specified rule engine.

  • Added the following functions for stream tables:

    • enableTableShareAndCachePurge: Shares a stream table and enables cache purge without persisting the table to disk.

    • enableTableCachePurge: Enables cache purge for a stream table without persisting the table to disk.

    • getStreamTableCacheOffset: Gets the number of records that have been purged from cache.

  • Added function createSnapshotJoinEngine to create a snapshot join engine for streaming data, which performs joins triggered by the latest data from the left and right tables and calculates metrics.

  • Added function createTimeBucketEngine to create a time-series engine with one or more custom-length windows.

  • Added function latestKeyedStreamTableto create a keyed stream table with a time column, which determines whether to insert records.

  • Added function getStreamEngineList to get information about all streaming engines on the current node.

  • Added configuration parameter TSDBVectorIndexCacheSize to set the cache size of the vector indexes in the TSDB engine.

  • Added support for logging into an agent node in non-HA clusters.

  • Added function jsonExtract to extract and parse JSON elements into the specified data type.

  • The return of function getCurrentSessionAndUse now includes the remote IP address and remote port number of the current session.

  • Added function getLoadedPlugins to get a list of the loaded plugins on the current node.

  • Added function cummdd to calculate the cumulative maximum drawdown or maximum drawdown rate. It can be used as the state function for the reactive state engine.

  • Added PKEY engine maintenance functions:

    • getPKEYMetaData to retrieve metadata for all PKEY engine chunks;

    • getPKEYCompactionTaskStatus to report status of pending and completed PKEY level file compaction tasks.

  • Added function constantDesc to provide a description of an object.

  • Added function memberModify! to modify the member(s) of a tuple or ANY dictionary.

  • Added configuration parameter slaveReplicationDBScope to specify which databases to replicate from the master cluster in asynchronous replication.

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.2.7)

  • Enhanced support for canceling jobs during SQL update operations. (3.00.2.7)

  • Optimized partition pruning to improve the performance of queries like select * from t where id in ids when ids is a table. (3.00.2.7)

  • Enhanced syntax exception messages to include the line number. (3.00.2.7)

  • Enhanced the error message when creating tables via createIPCInMemoryTable. (3.00.2.7)

  • Optimized the error logging of ChunkCache::flushTableToDisk so that the actual error information is returned when related operations fail, avoiding misleading troubleshooting caused by always throwing a fixed memory exception. (3.00.2.7)

  • Added support for mapping multiple return values of a stateless function to multiple columns of the output table in the reactive state engine. (3.00.2.7)

  • Added an exit code to the return value of the socp function. (3.00.2.7)

  • The value of configuration parameter subThrottle is now automatically adjusted to 1 if a value smaller than 1 is set. (3.00.2.6)

  • Improved the error message thrown when an alias is used for a GROUP BY field in the SELECT clause. (3.00.2.6)

  • The license function supports retrieving the module name Beluga. (3.00.2.6)

  • Improved error handling in distributed queries when comparing CHAR constants with STRING partitioning columns in the WHERE clause. The system now raises an error message. (3.00.2.5)

  • Added support for partition pruning when modifying data in partitioned DFS tables with the UPDATE/DELETE statement. (3.00.2.5)

  • Optimized the handling logic for restoring from the backed up with SQL statements: when the partitioning schemes of the backup table and the target database are identical, the required partitions are now automatically added before restoration. (3.00.2.5)

  • Added parameter mergeSessionfor function createDailyTimeSeriesEngine. (3.00.2.5)

  • Enhanced storage-compute separation features: (3.00.2.5)

    • Supported specifying multiple cache directories for a compute node.

    • The maximum memory cache size on compute nodes is now specified in GB instead of MB.

    • Supported automatic flushing of memory cache to disk after graceful shutdown.

    • Added function getComputeNodeCacheDetails to obtain detailed cache information on the current node.

    • Added new parameters database and table for function clearComputeNodeCache to clear the memory and disk cache of specified database/table.

    • Enabled compression of disk cache compute nodes.

  • Enhanced the DELETE statement performance. (3.00.2.5)

  • Added supported specifying both window=0:0 and maxDelayedTime simultaneously in createWindowJoinEngine. (3.00.2.5)

  • Added support for declaring array vector member variables in class definitions. (3.00.2.5)

  • Added support for backup and restore of empty tables in an IOTDB database. (3.00.2.5)

  • Added support for hyphens in usernames. (3.00.2.5)

  • Enhanced the functionality of the bondCashflow function, and standardized its interface definition. (3.00.2.5)

  • Enhanced the performance of queries containing the TOP keyword. (3.00.2.4)

  • Enhanced the system security. (3.00.2.4)

  • Enhanced the stability of batch job execution under high-load and high-concurrency scenarios. (3.00.2.4)

  • Added the recording of operations on the persisted MVCC table to the log. (3.00.2.4)

  • Added the “updateTime” field to the backup log file. (3.00.2.4)

  • Optimized the query performance for VALUE-partitioned TSDB databases when filtering on partitioning columns. (3.00.2.4)

  • Improved memory efficiency when processing speed is slow. (3.00.2.2)

  • The PKEY engine's bloomfilter index now supports the following types: TEMPORAL, BINARY, and COMPLEX. (3.00.2.2)

  • Optimized the performance of IOTDB engine when performing aggregate calculations in distributed queries. (3.00.2.2)

  • Added new parameter updatedContextGroupsOnly to the createCrossSectionalEngine function for calculating the groups with updates since the last output. (3.00.2.2)

  • Optimized the time series engine: (3.00.2.2):

    • When useSystemTime=false, acceptedDelay can now exceed windowSize.

    • Optimized memory usage when the following conditions are met:

      • windowSize is set as a scalar.

      • windowSize and step have the same value.

      • acceptedDelay > 0.

      • useSystemTime = false.

      • keyColumn is not empty.

  • Improved memory efficiency when processing speed is slow. (3.00.2.2)

  • Updated the trading calendar. (3.00.2.2)

  • Optimized performance and stability for IOTDB storage engine. (3.00.2.1)

  • Enhanced stability for storage-compute architecture. (3.00.2.1)

  • The following configuration parameters are enabled by default: enableDFSQueryLog, enableAuditLog, and datanodeRestartInterval.

  • Enhancements to curve fitting functions nss, ns, and piecewiseLinFit:

    • Split the original nss function: nss now uses the NSS model and new ns function implements the NS model. Their maturtity parameter can be set as 0.

    • Expanded algorithm options for the method parameter, including 'nm', 'bfgs', 'lbfgs', 'slsqp' or 'de'.

    • Introduced additional parameters for optimal fit, such as maxIter, initialGuess, bounds, seed.

    • Optimized the performance of piecewiseLinFit.

  • Enhanced the createDailyTimeSeriesEngine function:

    • It can now include the last window of a session in its output, even if this window contains fewer data records than the specified window size.

    • Added parameter keyPurgeDaily to determine if existing data groups are automatically removed when newer data from a subsequent calendar day is ingested.

    • The calculation of daily time series engine now can be triggered by each incoming record with updateTime = 0.

  • When using the moving higher-order function in a reactive state engine, its func parameter now supports functions returning tuples.

  • The cross sectional engine can now accept array vector inputs.

  • The filter parameter of the subscribeTable function now supports user-defined functions or expressions.

  • Added parameter validation for the unsubscribeTable function.

  • Optimized the performance of the getStreamEngineStat function.

  • Added parameter eventTimeField for the createCEPEngine function, allowing the function to handle events (appended by appendEvent) based on event time when useSystem = false.

  • New constraint in enableTablePersistence and enableTableShareAndPersistence: cacheRetentionTime must be less than cachePurgeInterval.

  • The PKEY engine now supports vector indexing.

  • Improved query efficiency for the PKEY engine by enhancing its deduplication process.

  • Functions sqlCol and sqlColAlias now support using column alias containing characters other than underscore, letters and digits.

  • The catalog parameter of the setDefaultCatalog function now can be set as an empty string ““, indicating that no default catalog is used.

  • Added a log when users are reset to guest status after session disconnection.

  • The prevailing parameter of the twindow function now accepts 0, 1, or 2. When range's left boundary is 0, window starts at current row, excluding prior duplicates, and vise versa.

  • The partitionPaths parameter of the dropPartition function can no longer be set as empty strings, preventing the deletion of the entire table.

  • The model parameter of the predict function now accepts strings.

  • The poly1d function has been renamed to polyPredict, with poly1d now serving as an alias.

  • Added the mode parameter for the polyFit function to specify whether the output should be a vector or a dictionary.

  • The X parameter of the kroghInterpolate function has been renamed to newX.

  • Refactored functions clip and clip!as scalar functions.

  • The rename! function now supports indexed matrices and series.

  • Enhanced the efficiency of accessing member variable in object-oriented programming.

  • Implemented parallel processing for queries on single or joined in-memory tables when specified SELECT column conditions are met.

  • Implemented parallel processing for GROUP BY operations on in-memory tables with: a. over 10 million rows; b. use of specific aggregate functions.

  • LEFT, FULL, and EQUI JOINs now utilize parallel processing and hash join algorithms.

  • PIVOT BY queries now support the rowWsum function.

  • The aggs parameter of window join now supports expressions.

  • Removed print length restriction for getJobMessage. It now returns complete output without truncation.

  • Enhanced the error message for error code S06005 with overwritten function name included.

  • Loading DFS tables is no longer permitted on controllers.

  • The default value of maxConnectionPerSite has increased from 2 to 64 to reduce deadlock risk from insufficient number of available workers.

  • Added parameter useAbsFit for the createGPLearnEngine function to specify whether to allow absolute value in fitness calculation for 'pearson', 'spearmanr', or corr fitness functions (fitnessFunc).

  • Optimized the performance for data queries within the TSDB cache engine.

  • Optimized the performance for queries involving where conditions with IN clauses on STRING type columns.

  • The shutdown process has been optimized as follows:

    • The stopDataNode function is now implemented asynchronously.

    • The disableCoreDumpOnShutdown configuration parameter now defaults to true.

  • Added validation for metadata recovery on controller.

  • Added validation when adding nodes with addNode.

  • The triggerNodeReport function now is supported in standalone mode.

  • JIT backtesting engine has been updated to display class attributes and their corresponding values when printing class instances in callback function.

  • JIT now supports temporal types, including SECOND, MINUTE, DATE, MONTH, DATETIME, DATEHOUR, TIMESTAMP, NANOTIME, NANOTIMESTAMP.

  • JIT now supports the next function.

Issues Fixed

  • Fixed a crash caused by an out-of-bounds index when assigning values to a dictionary. (3.00.2.7)

  • Fixed an issue where partition pruning was not correctly applied for comparison conditions using < or <= on VALUE-partitioned tables. (3.00.2.7)

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

  • 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.2.7)

  • Fixed an issue where SQL aggregation operations could occasionally cause the server to crash. (3.00.2.7)

  • 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.2.7)

  • Fixed an issue where the system could incorrectly parse "minus 1" as "negative 1" and report an error when there were spaces around the subtraction operator in the compution expression of an SQL statement. (3.00.2.7)

  • Fixed server crashes caused by out-of-bounds row index generation when deleting records via join queries on TSDB tables with soft deletion enabled and the keepDuplicates parameter not set to ALL. (3.00.2.7)

  • Fixed an issue where insert into statements with specified columns combined with select could report inaccurate error messages, returning more accurate error information in versions where this syntax is not supported. (3.00.2.7)

  • Fixed an issue where nodes fail to start when upgrading from 3.00.0.x to 3.00.2.7 due to the presence of catalog tables in the old version. (3.00.2.7)

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

  • Fixed an issue where the system could hang when writing to TSDB Database if the number of symbols exceeded the limit. (3.00.2.7)

  • Fixed an issue where temporary directories were not properly deleted when rolling back uncommitted update/delete transactions. (3.00.2.7)

  • 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. (3.00.2.7)

  • 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.2.7)

  • 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.2.7)

  • Fixed an issue where using class state calculation scripts with local variables in the reactive state engine could cause null pointer exceptions and crashes. (3.00.2.7)

  • 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.2.7)

  • 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.2.7)

  • Fixed server crashes where inserting an empty vector into a stream table with a timestamp column set by setStreamTableTimestamp. (3.00.2.7)

  • Fixed an issue where enableTableShareAndCachePurge might occasionally fail for a stream table that had multiple local subscriptions. (3.00.2.7)

  • Fixed an error when subscribing to data published by a 2.00.X cluster from a 3.00.X subscriber. (3.00.2.7)

  • Fixed a cluster hang issue caused by concurrent dropTable and write operations. (3.00.2.7)

  • Fixed an issue where scheduled jobs and subscriptions could occasionally fail to execute under high system load. (3.00.2.7)

  • Fixed an issue where enabling enableSeqNo during client write operations could cause memory leaks. (3.00.2.7)

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

  • Fixed the issue where exporting CSV with the saveText function incorrectly handles quotes in fields with the SYMBOL type. (3.00.2.7)

  • Fixed an issue where the integral function failed when the integration bounds were set to NULL in double integral calculations. (3.00.2.7)

  • Fixed an issue where bfill produced incorrect results when processing certain special characters. (3.00.2.7)

  • 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.2.7)

  • Fixed an issue where closing an abnormal subscription connection on the publisher side left a lock unreleased when other active subscriptions existed, blocking new subscriptions. (3.00.2.6)

  • Fixed server crashes caused by dropping a local table (using drop table) that shares the same name with a variable shared from another session. (3.00.2.6)

  • Fixed server crashes caused by the concurrent execution of share and existsStreamTable on the same stream table. (3.00.2.6)

  • Fixed an issue where the connection to the publishing node in cross-node subscription scenarios did not use the user information from XDB for login. (3.00.2.6)

  • Fixed server crashes caused by revoking table-related permissions with objs specified as a database object. (3.00.2.6)

  • Fixed an issue where queries using user-defined aggregation functions combined with interval grouping returned empty results. (3.00.2.6)

  • Fixed an issue where null values in the results returned by eig().values could not be properly filled. (3.00.2.6)

  • Fixed an issue where the vectorAR function failed on certain valid inputs. The behavior is now aligned with the Python implementation. (3.00.2.6)

  • Fixed a node hang issue caused by stream table persistence blocking all worker threads. (3.00.2.6)

  • Fixed a missing reconnect issue caused by stale subscription state. (3.00.2.6)

  • Fixed an issue where concurrent subscribe and unsubscribe operations on the same topic caused inconsistent subscription state. (3.00.2.6)

  • In the time-series engine, the nunique, ifirstNot, and ilastNot functions specificed in the metrics argument now support expressions and nested functions as arguments. (3.00.2.5)

  • Fixed an error for queries on tables in TSDB databases when a sort column was specified as a GROUP BY column and the nunique function was specified in the SELECT statement with parameters of type STRING or SYMBOL. (3.00.2.5)

  • Fixed server crashes caused by using UPDATE/DELETE with WHERE EXISTS. Now it raises an error instead. (3.00.2.5)

  • Fixed incorrect prompt message shown after password expiration when enhancedSecurityVerification is enabled. (3.00.2.5)

  • Fixed server crashes caused by using UPDATE/DELETE with WHERE EXISTS. Now it raises an error instead. (3.00.2.5)

  • Fixed server crashes caused by cache allocation failure in the OLAP proxy storage engine of the storage-compute separation architecture. (3.00.2.5)

  • Fixed server crashes caused by invalid parameters passed to sqlColAlias. (3.00.2.5)

  • Fixed an issue where using the ols function with PIVOT BY on in-memory tables involving multiple groups could cause the error: “The number of observations must be more than the number of factors.” (3.00.2.5)

  • Fixed an error that occurred when inserting array vectors into the cross-sectional engine if the triggeringPattern was set to "perRow". (3.00.2.5)

  • Fixed server crashes when the dummyTable specified in createRuleEngine contained a SYMBOL column. (3.00.2.5)

  • Fixed incorrect JSON serialization of DECIMAL32 values in the toStdJson function. (3.00.2.5)

  • Fixed occasional hangs on the web client when executing code if the response data size is between 4050 and 4060 bytes. (3.00.2.5)

  • Fixed the issue where the server entered an infinite loop when executing decimalFormat(0, '0.00E0'). (3.00.2.5)

  • Fixed an error where SQL queries failed if they contained both a user-defined aggregate function returning multiple values and a GROUP BY clause with interval. (3.00.2.5)

  • Fixed the issue where the “lastUpdated” field in the controller metadata could be null after restoring from a backup that was created immediately after a restart without any data updates. (3.00.2.5)

  • Fixed occasional server crashes when executing SQL queries containing the DISTINCT statement. (3.00.2.5)

  • Fixed an issue where accelerated replay within a specified time range failed to run at the configured speed when replaying heterogeneous stream tables. (3.00.2.5)

  • Fixed memory leaks caused by transactions with excessively large transaction IDs (greater than 2³¹ – 1) that could not be properly reclaimed. (3.00.2.5)

  • Fixed incorrect results when performing GROUP BY with interval on large datasets. (3.00.2.5)

  • Fixed an issue where fromStdJson failed to parse JSON strings containing empty objects with closing braces on a new line. (3.00.2.5)

  • Fixed the precision errors of DECIMALs when OLAPCacheEngineSize=0 was configured. (3.00.2.4)

  • Fixed server crashes caused by the excessively large result generated by a cross join. (3.00.2.4)

  • Fixed server crashes when appending an empty table to a keyed stream table. (3.00.2.4)

  • Fixed the errors that occurred when the GROUP BY clause contained the interval function and the SELECT clause contained aggregate functions returning multiple values. (3.00.2.4)

  • Fixed server crashes that occurred when queries with lead/lag analytic functions were executed in MySQL syntax mode. (3.00.2.4)

  • Fixed occasional incorrect results returned by the max function when the SQL statement contained a group by clause and the max function was applied to STRING columns. (3.00.2.4)

  • Fixed the issue causing incorrect results in a function view after server restarts when the view included CROSS JOIN (ANSI SQL compliant) combined with other types of table joins. (3.00.2.4)

  • Fixed a memory leak when calling a user-defined recursive function. (3.00.2.4)

  • Fixed a "unrecognized column name" error that occurred when executing a multi-table JOIN query, if some partitions were offline due to node failures in the cluster. (3.00.2.4)

  • Fixed a "unrecognized column name" error that occurred when executing a multi-table JOIN query, if some partitions were offline due to node failures in the cluster. (3.00.2.4)

  • Fixed an issue in heterogeneous replay where data sources (generated by replayDS with timeRepartitionSchema specified) were replayed in a disordered manner. (3.00.2.4)

  • Fixed occasional server crashes when the X and Y of the corr function were tables with different numbers of columns. (3.00.2.4)

  • Fixed misleading error messages returned when table joins encountered more than 2,097,152 unique values in a SYMBOL column. (3.00.2.4)

  • Fixed server crashes caused by concurrent writes to an in-memory keyed table. (3.00.2.4)

  • Fixed server crashes caused by concurrent disk reads in the TSDB engine due to missing filter conditions in pivot by after partition pruning. (3.00.2.4)

  • Fixed server crashes caused by appending a partitioned DFS table to another. The system now reports an error for such case. (3.00.2.4)

  • Fixed an error when deleting column(s) from a keyed table if any column name contains uppercase letters. (3.00.2.4)

  • Fixed an issue where column names could not be specified as uppercase when creating an IMOLTP table. (3.00.2.4)

  • Fixed an issue in high-availability clusters where an existing table handle could not access data from newly added partitions without obtaining a new handle (reloading table via loadTable). (3.00.2.4)

  • Fixed server crashes when querying a keyed or indexed table with multiple primary key columns, where the filter condition contained an empty SYMBOL vector. (3.00.2.4)

  • Fixed an error that occurred during log replay of cluster restart when the scale of DECIMAL data written to a TSDB database exceeded the scale set in schema. (3.00.2.2)

  • Fixed server crashes caused by inserting data with incompatible key column types into a keyed table. This issue was introduced in versions 2.00.11.1/1.30.23.1. (3.00.2.2)

  • Fixed the following issues with the createCrossSectionalEngine (3.00.2.2):

    • The number of aliases specified in metrics was less than the number of returned columns, causing the server to crash.

    • When both contextByColumn and keyFilter were specified, the function specified in keyFilter was called twice.

  • Fixed an error in the asof join engine where the timeColumn was a vector specifying for both the left and right tables, but only the right table's time column was included in the metrics. (3.00.2.2)

  • Fixed occasional crashes due to concurrent writes to a shared table when when its alias was specified as the output table of a streaming engine.(3.00.2.2)

  • Fixed server crashes caused by concurrent writes to stream tables containing array vectors. (3.00.2.2)

  • Fixed errors when accessing array vectors returned by functions through index in distributed queries. This issue was introduced in versions 3.00.2. (3.00.2.2)

  • Fixed occasional errors of missing column references during table joins caused by system modifications to variable names in subqueries. (3.00.2.2)

  • Fixed an error caused by referencing local variables in table joiner functions (e.g., lj). This issue was introduced in versions 3.00.2. (3.00.2.2)

  • Fixed an error that occurred when the last column specified in PIVOT BY was a partitioning column and the queried data volume was excessively large. (3.00.2.2)

  • Fixed a deserialization error during network transmission if a string was truncated using \0.

  • Fixed a memory overflow issue during symbol base initialization due to an excessive number of partitions.

  • Fixed login failure on a compute node which was added to a cluster offline.

  • Fixed occasional issues where a transaction might be prematurely logged as complete before it actually finished under memory overflow conditions in standalone mode.

  • Fixed connectivity issues during asynchronous replication where the slave cluster failed to connect to the master cluster after a leader switch.

  • Fixed an issue where asynchronous replication threads did not terminate when a node was shut down.

  • Fixed a startup failure caused by corrupted data of persisted stream tables.

  • Fixed a server crash caused by encapsulating classes into function views.

  • Fixed an abnormal display of dictionaries containing class instances as values.

  • Fixed server crashes during login when the workerNum configuration parameter is left empty. The system now logs and reports the error.

  • Fixed a condition evaluation error where defined is used in the if condition and its argument was defined in the elseblock.

  • Fixed an issue in keyed tables where identical key values were mistakenly identified as different values if the inserted data type of the key column(s)did not match the table schema.

  • Fixed server crashes caused by self-referencing dictionaries.

  • Fixed an issue with nested dictionaries where adding a new key-value pair to an inner dictionary also added the same key-value pair to the outer dictionary.

  • Fixed a server crash caused by out-of-bounds indices in the at operator.

  • Fixed an issue where the pnodeRun function did not include the node name in its return value when invoking a function that returned a vector.

  • Fixed a server crash caused by multiple executions of pnodeRun(setTraceMode{true}).

  • Fixed a server crash caused by the peach function using stack variables.

  • Fixed incorrect parsing results of toStdJsonwhen converting dictionaries containing values indicating data types (e.g., DATE).

  • Fixed inconsistent calculation logic and return types for percentChange(x,1) and percentChange(x) when x is a floating-point number.

  • Fixed data duplication issues when calculating metrics with subWindowspecified in (daily) time-series engines.

  • Corrected input arguments for functions cancelRebalanceTask and cancelRecoveryTask.

  • Fixed an issue where the cumstd function returned 0 when calculating values smaller than 1e-10.

  • Fixed an issue where subscriptions created via the Python client could not be canceled with unsubscribeTable. This issue was introduced in version 3.00.1.

  • Fixed an issue where the std, stdp, var, and varp functions did not check for very small numbers, leading to incorrect calculation results. This issue was introduced in version 3.00.0.

  • Fixed an occasional issue where the kama function produced inconsistent results compared to Python's TA-Lib.

  • Fixed automatic interpolation in (daily) time-series engines when the value of acceptedDelay is the same as windowSize.

  • Fixed an issue where daily time-series engines filled time column with "invalid date" after receiving cross-date data in different groups.

  • Fixed potential data loss in the daily time-series engine after receiving data that spans multiple days.

  • Fixed slow publishing of streaming data after filter was applied.

  • Fixed precision loss of DECIMALs when a SQL query filtered on sort columns of a TSDB database.

  • Fixed an error when calling a member method which contained a WHERE clause with IN conditions after instantiating the class.

  • Fixed case sensitivity of CONTEXT BY columns in distributed queries.

  • Fixed an issue where the UPDATE statement failed to swap the values of two columns in an in-memory table.

  • Fixed an issue where scalars could not be used for matrix assignments in JIT version.

  • Fixed occasional freezing issues in the Windows JIT version.

  • Fixed an error when passing a vector to the groupCol parameter of createGPLearnEngine.

Deprecated Features

  • Deprecated LAN license server. Functions getLicenseServerResourceInfo and getRegisteredNodeInfo, and configurations licenseServerSite and bindCores are removed in this release. Please use WAN license server instead.