3.00.1

Version: 3.00.1   Compatibility Level 2 with 3.00.0 & 2.00.12

For details, see Compatibility Changes.

Release Date: 2024-06-30

Available Downloads:

New Features

  • Added functions getDBAccess and getTableAccess to check the user/group access to specific databases and tables. (3.00.1.3)

  • Added parameter minPeriods to functions mcount and mrank for specifying the minimum number of observations in a window. (3.00.1.2)

  • Added function hmac for implementing hash-based message authentication code. (3.00.1.2)

  • Added function vectorNorm for calculating the norm of a vector or matrix. (3.00.1.2)

  • Added configuration parameter queryLogRetentionTime for setting the retention time of query logs. (3.00.1.2)

  • Added configuration parameter resourceSamplingLogDir to set the directory for storing resource tracking logs.

  • Added support for the ternary operator ?:.

  • Implemented tensor data form, enhancing data exchange between the system and deep learning frameworks when used with plugins.

  • Added configuration parameter enableRDMA to enable RDMA communication.

  • Added configuration parameter allowTSDBLevel3Compaction to set whether to allow compaction of level 3 files. Added new parameter level to function triggerTSDBCompaction to specify the level at which to trigger file compaction.

  • Added configuration parameter jobLogRetentionTime to set the retention time of query information stored in data node logs.

  • Added configuration parameter batchJobFileRetentionTime to set the retention time for batch and scheduled job results.

  • Added function remoteRunCompatible that operates in the same way as function remoteRun but skips version verification between local and remote databases.

  • Added parameters priority and parallelism to function scheduleJob to set the priority and parallelism for scheduled jobs.

  • Added parameter bom to function saveText to set whether to include a BOM header when exporting files.

  • Added new optimization functions:

    • fminLBFGSB: Minimizes a function using the L-BFGS-B algorithm.

    • fminNCG: Performs unconstrained minimization using the Newton Conjugate Gradient method.

    • fminBFGS: Minimizes a function using the BFGS algorithm.

    • fminSLSQP: Minimizes a function using the Sequential Least Squares Programming method.

    • brute: Minimizes a function within a given range using the brute-force method.

  • Added functions piecewiseLinFit and pwlfPredict to fit a piecewise linear regression function and make predictions based on the regression model.

  • Added functions gaussianKde and gaussianKdePredict to estimate the probability density of a random variable using the Gaussian kernel estimation and make predictions based on the regression model.

  • Added function vectorAR to analyze multivariate time series using a vector auto-regression model.

  • Added function eqPercent to check element-wise equality of two inputs within a specified tolerance level.

  • Added support for primary key storage engine (enabled by setting engine="PKEY" in function database).

  • Added parameter primaryKey to function createPartitionedTable for specifying the primary key columns.

  • Added parameter indexes to function createPartitionedTable to specify indexes for vector retrieval.

  • Added function removeNode to remove compute nodes from a cluster.

  • Enhanced function addNode for adding multiple nodes simultaneously.

  • Added support for Chimp compression algorithm.

  • Added configuration parameters TSDBSymbolBaseEvictTime and TSDBCachedSymbolBaseCapacity determine when to evict least recently used SYMBOL base entries based on time or capacity limits.

  • Added function clearAllTSDBSymbolBaseCache to clear all cached SYMBOL base entries that are absent from both the cache engine and ongoing transactions.

  • Added support for DELETE JOIN in the SQL DELETE statement and the sqlDelete function.

  • Added function setTableComment for adding comments to DFS tables. Added parameter comment to SQL CREATE statement.

  • Added configuration parameter memLimitOfAllTempResults to set the memory limit for all temporary partitioned tables generated during distributed queries. Added related functions setMemLimitOfAllTempResults and getMemLimitOfAllTempResults to dynamically set and get the configuration value.

  • Added configuration parameter enableInsertStatementForDFSTable to set whether the insert into statement is allowed for DFS tables.

  • insert into statement now supports inserting multiple rows.

Improvements

  • Enhanced loadPlugin to support paid plugins. (3.00.1.3)

  • The parameter n of state functions percentChange and deltas of the reactive state engine can be specified as a positive integer. (3.00.1.3)

  • The parameter level of function writeLogLevel can be an integer 0 (DEBUG), 1 (INFO), 2 (WARNING), or 3 (ERROR). (3.00.1.3)

  • Optimized loading performance of persisted stream tables. (3.00.1.3)

  • Optimized the checkpoint mechanism to reduce the checkpoint frequency for massive metadata on the controller. (3.00.1.3)

  • Enhanced data type validation for partitioning columns when creating tables in a database with a time-based partitioning scheme. (3.00.1.3)

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

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

  • The backup function now captures and stores table owner information, which enables the restore function to restore the corresponding owner information. (3.00.1.2)

  • Enhanced access control and other features to improve system security. (3.00.1.1)

  • In metaprogramming, you can now specify column alias using a macro.

  • The registerSnapshotEngine function now allows the snapshot engine to be registered on all data nodes for a DFS table, with a new parameter dedupColumnName added for this purpose.

  • Built-in functions with function patterns can serve as function operators.

  • The snapshot parameter of the restore function now defaults to true instead of false.

  • In asynchronous replication, slave clusters no longer require password configuration through the clusterReplicationExecutionPassword parameter. User credentials are now verified using a more secure method.

  • Enhanced TSDB redo log replay performance.

  • The clearAllCache function has been extended to include cache specific to the TSDB storage engine.

  • The version function now provides more comprehensive version details.

  • interval function enhancements:

    • The duration parameter can be specified using trading calendar identifiers.

    • Non-partitioned table queries now support user-defined aggregate functions when interval's duration and step parameters are inconsistent.

  • The flatten function can be applied on nested tuples.

  • The precision of logisticRegression now matches that of its sklearn equivalent.

  • Improved precision for functions: std, stdp, var, varp, skew, and kurtosis.

  • The func parameter of the moving higher-order function now supports functions returning tuples.

  • A new fill parameter has been added to the addMetrics function to specify the NULL filling method.

  • The parseJsonTable function now accepts tables containing BLOB columns.

  • The isDuplicated function now supports BLOB columns.

  • The fmin function parameters have been adjusted.

  • The rowAlign function supports columnar tuples.

  • Output of the rolling function can now have row labels.

  • TSDB databases now support compression of NULL columns during insertion.

  • The createSchema function now restricts adding a database to a single catalog.

  • Reactive state streaming engine enhancements:

    • prev can be applied on array vector columns.

    • Added support for 35 topN stateful functions.

    • keyColumn is now an optional parameter.

    • User-defined functions (UDFs) that return multiple values can now be used as the rvalue of assignment statements within user-defined stateful functions.

    • Improved error messages.

  • The rightTable parameter of createLookupJoinEngine can now be specified using metacode.

  • The metrics parameter of the following streaming engines now accepts constants or vector of constants: createReactiveStateEngine, createAsofJoinEngine, createLookupJoinEngine, createEquiJoinEngine, createLeftSemiJoinEngine.

  • New parameters cachePurgeTimeColumn, cachePurgeInterval and cacheRetentionTime have been added to enableTablePersistence and enableTableShareAndPersistence functions. These parameters specify how data in memory is cleaned for persisted stream tables.

  • Updated the acceptedDelay parameter in createTimeSeriesEngine and createDailyTimeSeriesEngine to allow specifying the delay time for a window to close and trigger.

  • New parameters outputHandler and msgAsTable, which allow passing calculation results to a unary function, have been added to the following streaming engines: createTimeSeriesEngine, createDailyTimeSeriesEngine, createReactiveStateEngine, createDualOwnershipReactiveStateEngine, createNarrowReactiveStateEngine.

  • INNER JOIN and LEFT JOIN support generating runtime filter using the IN predicate.

  • Enhanced query performance when filtering on partitioning columns in combination with the LIMIT clause.

  • Analytic functions with OVER(PARTITION BY xxx) can now be used within CASE WHEN statements.

  • Optimized higher-order functions accumulate and reduce in JIT.

  • JIT now supports handling indexed matrices.

Issues Fixed

  • [D20-18167] Fixed potential server crashes caused by resource tracking. (3.00.1.3)

  • [D20-18430] Fixed server crashes occurring when array vector elements exceeded the length limit during table joins. (3.00.1.3)

  • [D20-18483] Fixed state cleanup issues during transaction anomalies when operating on MVCC tables. (3.00.1.3)

  • [D20-18522] Fixed data loss caused by concurrent moveHotDataToColdVolume operations on the same partition. (3.00.1.3)

  • [D20-18540] Fixed an issue where the batch job logs failed to record the job start times when disk space was fully occupied during job initiation. (3.00.1.3)

  • [D20-18544] Fixed incorrect results returned by the reactive state engine when calculating the prev function with an array vector input and keepOrder=true. (3.00.1.3)

  • [D20-18548] Fixed the error A table can't contain duplicate column names reported when the lookup join engine’s rightTimeColumn contains uppercase letters and was used in metrics. (3.00.1.3)

  • [D20-18553] Fixed potential metadata loss in HA clusters due to checkpoint failures during a controller restart. (3.00.1.3)

  • [D20-18554] Fixed an occasional issue where a chunk path corresponded to multiple chunk IDs. (3.00.1.3)

  • [D20-18603] Fixed an issue where rollingPanel failed to group data based on groupingCol. (3.00.1.3)

  • [D20-18640] Fixed server crashes that occurred when executing background jobs containing lambda expressions, submitted via submitJob or scheduleJob, if the session that originally submitted the job had closed. (3.00.1.3)

  • [D20-18661] Fixed incorrect results of SQL queries where an argument of an aggregate function was a scalar or a vector of incompatible length with the input table columns, specifically when using the vectorized grouping algorithm. (3.00.1.3)

  • [D20-18703] Fixed an error of “The result of distributed call is not a table” caused by EXEC distributed queries with positive LIMIT/TOP and ORDER BY clauses specifying a partitioning column in descending order. (3.00.1.3)

  • [D20-18723] Fixed an issue of createDailyTimeSeriesEngine where data with timestamps smaller than sessionEnd was received after forceTriggerSessionEnd. (3.00.1.3)

  • [D20-18780] Fixed a system failure to skip cluster replication tasks with corrupted data, which resulted in endless retry attempts.

  • [D20-18790] Fixed an issue in distributed query optimization using ORDER BY and LIMIT/TOP. (3.00.1.3)

  • [D20-18827] Fixed an error of parseJsonTable when parsing JSON objects containing \\\". (3.00.1.3)

  • [D20-18871] Fixed server crashes where LEFT JOIN returned a NULL pointer due to an OOM issue. This issue was introduced in version 2.00.13/3.00.1. (3.00.1.3)

  • [D20-18889] Fixed occasional failures in stream subscription. (3.00.1.3)

  • [D20-18935] Fixed incorrect results returned by aggregate functions such as wsum and wavg with a scalar and an empty array as inputs. (3.00.1.3)

  • [D20-19049] Modified the function flatten to be compatible with previous versions. (3.00.1.3)

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

  • [D20-18162] Fixed incorrect start date in the audit log for APPEND operations. (3.00.1.2)

  • [D20-18195] Fixed an issue where uploading an encrypted module could cause variables to be lost in the current session. (3.00.1.2)

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

  • [D20-18272] Fixed an error when executing the writeLogLevel function in a scheduled job after a server restart. (3.00.1.2)

  • [D20-18312] Fixed a server crash when querying an array vector column with distinct. (3.00.1.2)

  • [D20-18356] Fixed an issue where queries failed during ej operation if the table name was not specified in the where condition. (3.00.1.2)

  • [D20-18204] Fixed an error in CEP engine when processing events without dispatchKey column after setting dispatchKey parameter. (3.00.1.2)

  • [D20-18423] Fixed system crashes after executing the createWindowJoinEngine function with invalid parameters. (3.00.1.2)

  • [D20-18122] Fixed an error where using the move function may lead to incorrect calculation results if the input data was an intermediate result. (3.00.1.2)

  • [D20-18219] Fixed occasional crashes when executing the mpercentile function multiple times. (3.00.1.2)

  • [D20-18331] Fixed an error in JIT when using the rank function due to type inference issues. (3.00.1.2)

  • [D20-18291] Fixed an error in JIT when using the isort function due to compatibility issues. (3.00.1.2)

  • Fixed parsing errors preventing addition of function views for no-return functions in module/plugin.

  • Fixed ARM server crashes caused by concurrent openBLAS thread operations.

  • Fixed incorrect results returned by the qclp function.

  • Fixed server crashes when the SQL statements within the metacode specified in the obj parameter of the saveText function were incorrectly enclosed with quotes ('').

  • Fixed server crashes when using at together with higher-order functions eachRight/eachLeft.

  • Fixed server crashes when loading excessively large files with the loadText function.

  • Fixed an issue where the dict function were not recognized in class inheritance.

  • Fixed the getUserHardwareUsage function returning unexpected results when provided with dates.

  • Fixed an issue where the "executionSet" field returned by the getSlaveReplicationQueueStatus function was occasionally randomized.

  • Fixed an issue where strings were incorrectly recognized as DATE values and failed to load with the loadText function.

  • Fixed an error when appending array vectors generated by the fixedLengthArrayVector function to a keyed table.

  • Fixed server crashes when the aggs parameter of wj was specified as count(head()).

  • Fixed SQL parsing issue when a statement included user-defined variables in the SELECT clause alongside a GROUP BY clause.

  • Fixed an issue in pj where, with left and right tables sorted by matching columns, only the first matched row from the right table was selected for joining, causing incomplete results.

  • Fixed SQL optimization failure caused by case mismatches between join columns and table columns.

  • Fixed an issue with partition pruning when the IN clause in a WHERE condition was followed by an in-memory table.