1.30.23

Version: 1.30.23     Compatibility Level 2 with 1.30.22

For details, see Compatibility Changes.

Release Date: 2024-01-03

Available Downloads:

New Features

  • Added configuration parameter s3Endpoint for accessing AWS S3. (1.30.23.2)

  • Added function regexFindStr to find substrings that match a regular expression in a given string.(1.30.23.1)

  • Added support for using the OVER clause with window functions which compute values over a particular window (group of rows) and return a single result for each row, including: sum, avg, std, stdp, var, varp, count, min, max, skew, kurtosis, med, rank, dense_rank, percent_rank, row_number, cume_dist, lead, lag, ntile, first_value, last_value, and nth_value. (1.30.23)

  • Added configuration parameter jobParallelismHardLimit to limit the maximum number of workers a job can use to the parallelism of that job. (1.30.23)

  • Added configuration parameter defaultJobParallelism to set the default parallelism for jobs submitted by users. (1.30.23)

  • Added configuration parameter datanodeRestartLevel to set the triggering condition for the controller to automatically restart the data/compute node. Added function setDatanodeRestartInterval to set the restart interval online and function getDatanodeRestartInterval to obtain the configured datanodeRestartInterval. (1.30.23)

  • Added configuration parameters thirdPartyCreateUserCallback and thirdPartyDeleteUserCallback to call back specified function views when using the createUser and deleteUser functions. (1.30.23)

  • Added functions RidgeCV, ElasticNetCV, and LassoCV for cross-validation of machine learning models. (1.30.23)

  • Added functions iminLast/imaxLast/miminLast/mimaxLast/rowIminLast/rowImaxLast to return the maximum index for multiple extreme values. (1.30.23)

  • Added function signbit to get the sign of ±0.0. (1.30.23)

  • Added function submitJobEx2 which has similar functionality as submitJobEx but supports passing in a callback function. (1.30.23)

  • Added function kendall to calculate the Kendall rank correlation coefficients. (1.30.23)

  • Added functions clip and clip! to truncate data outside a given range. These functions have similar functionality to numpy.clip. (1.30.23)

  • Added function tableUpsert which has the same functionality as upsert! but returns the number of records that have been updated and inserted. (1.30.23)

  • Added function snippet to return the results as a STRING scalar. (1.30.23)

  • Added function socp which minimizes a linear objective function within specified constraints for solving second-order cone programs. (1.30.23)

  • Added function existsStreamTable to check if a stream table exists. (1.30.23)

  • Added function getStreamTables to get the information of all stream tables. (1.30.23)

Improvements

  • When parameter triggeringPattern of function createCrossSectionalEngine is set to "dataInterval", the calculation will now be triggered only for intervals where new data has been received, instead of for all intervals. (1.30.23.3)

  • Function hex now can convert floating numbers to hexadecimal. (1.30.23.3)

  • Function replayDS supports input of DECIMAL type. (1.30.23.2)

  • Line breaks are supported before the member(.) operator in scripts. (1.30.23.1)

  • Integrated modules and function view functionality (1.30.23):

    • Enabled namespace (module) for function view to prevent name conflicts. Any addition or deletion operations on function views will be synchronized and persisted to all nodes in a cluster.

  • Enhanced access control on job cancellation. (1.30.23)

  • Added return values for function schema (1.30.23):

    • the database and table creator;

    • compression algorithm for each column;

  • The loadPlugin function allows directly loading the plugin by specifying the filePath parameter as the plugin name. (1.30.23)

  • The backup function now supports setting backupDir to a directory on AWS S3. (1.30.23)

  • Enhanced functions transFreq, asFreq, and resample (1.30.23):

    • The closed and label parameters have been relaxed to allow more flexible specification when the time precision of rule is larger than day.

    • Added support for multiple trading days frequency for operations.

  • Function moving now supports passing a matrix as input (1.30.23).

  • Added support for online update for licenses with trial authorization. (1.30.23)

  • Functions toJson and toStdJson support escape characters when converting BLOB types. (1.30.23)

  • Optimized the performance of functions scs and quadprog. (1.30.23)

  • The unionAll function supports NULL values for the first element when the input is a tuple. (1.30.23)

  • The memory taken up by the dimension table now will be released automatically. (1.30.23)

  • For value-partitioned tables with partitioning columns of STRING or SYMBOL type, configuration parameter ignoreSpecialCharacterInPartitionId is added to specify whether to ignore ':' and '.' in partitioning columns when creating partition directories. (1.30.23)

  • Optimized the performance of function createAsofJoinEngine. (1.30.23)

  • Added parameter outputElapsedMicroseconds for the asof join engine and lookup join engine to output the elapsed time of each calculation. (1.30.23)

  • Functions createAsofJoinEngine, createSessionWindowEngine, and createLeftSemiJoinEngine now support passing array vectors as inputs. (1.30.23)

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

  • Added parameterskeyCapacity and parallelism for the reactive state engine to address the performance issue when calculating within a large number of groups. (1.30.23)

  • The state function defined in metrics of a reactive state engine now supports using for loops. (1.30.23)

  • Added parameter keepDuplicates for the lookup join engine to specify whether to keep all matching records in the right table. (1.30.23)

  • Added parameter subWindow for the time series engine to enable calculations in a subset time range within the window. (1.30.23)

  • Enhanced the streaming monitoring with function getStreamingStat for the status of workers of subscriber nodes. (1.30.23)

  • Function tmsum2 can be used as a state function in a reactive state engine. (1.30.23)

  • The cumTopN functions can be used as state functions in a reactive state engine. (1.30.23)

  • Added option "dataInterval" for parameter triggeringPattern of function createCrossSectionalEngine to calculate at intervals based on timestamps in the data. (1.30.23)

  • Added option "saltedHash" for parameter dispatchType of function createStreamDispatchEngine to apply a salted hash algorithm on keyColumn and distribute records based on the hash result. (1.30.23)

  • Added parameter preciseRate of function replay to specify whether to replay at replayRate times the time difference between two adjacent records. (1.30.23)

  • Data of DECIMAL type now can be calculated in streaming engines. (1.30.23)

  • Enhanced job execution logs to include detailed tracking for UPDATE and DELETE statements. (1.30.23)

  • For filtering conditions in a distributed query, DATE type can be compared with higher precision temporal types. (1.30.23)

  • Added size constraints for STRING, BLOB, and SYMBOL data written to distributed databases. (1.30.23)

  • Updated the exchange calendars for Year 2024. (1.30.23)

Issues Fixed

  • Fixed a parsing issue for binary operator with function patterns, e.g +:A(1, 2 3 4). (1.30.23.3)

  • Fixed the error when using function eval to evaluate a lambda expression parsed by parseExpr. (1.30.23.3)

  • Fixed an issue where the value of CODE type returned from a user-defined function was incorrectly interpreted as of STRING type. (1.30.23.3)

  • Fixed the issue where data being asynchronously replicated was removed when the controller failed to commit the transaction. This issue was introduced since version 2.00.11. (1.30.23.3)

  • Fixed data inconsistency during online recovery of replicas with large amount of different data. (1.30.23.2)

  • Fixed a server startup failure due to deserialization error when a function view involved the update operations on shared tables. (1.30.23.1)

  • Fixed occasional metadata errors arising from frequent OOM rollbacks across multiple transactions. (1.30.23.1)

  • Fixed incorrect results of each when the input was a partially-applied function (such as makeCall and binaryExpr). (1.30.23.1)

  • Fixed server crashes when the obj of upsert! was a keyed table with the original key column of STRING type and the corresponding newData column of SYMBOL type, and ignoreNull was set to true. (1.30.23.1)

  • Fixed incorrect results of add when taking BLOB vectors. (1.30.23.1)

  • Fixed incorrect results of update on DFS tables when aggregate functions, order-sensitive functions or user-defined functions were applied across partitions. (1.30.23.1)

  • Fixed incorrect query results when the where condition of a SQL query was specified as NULL. (1.30.23.1)

  • Fixed incorrect query results when a SQL query involved order by clause, and the where conditions used AND to specify multiple conditions containing aggregations. (1.30.23.1)

  • Fixed an error when a SQL order by clause specified variable names. This issue was introduced in versions 2.00.10 / 1.30.22. (1.30.23.1)

  • Fixed server crashes when using case when to evaluate an empty table in a SQL query. (1.30.23.1)

  • Fixed an error for createReactiveStateEngine when the parallelism parameter was set and metrics contained constant expressions. (1.30.23.1)

  • Fixed an error when sliceByKey accepted a shared keyed table as input. (1.30.23.1)

  • Fixed access denial errors when using nested function views. (1.30.23)

  • Fixed "No such file or directory" errors when reading empty dimension tables which were restored from backups after server restart. (1.30.23)

  • Fixed occasional errors when renaming columns using rename!. (1.30.23)

  • Fixed startup failures when dataSync=1 was configured on the controller but chunkCacheEngineMemSize was not set on the compute nodes. (1.30.23)

  • Fixed server restart failure due to replay issues after writing strings over 64 KB to distributed tables. (1.30.23)

  • Fixed incorrect nunique results calculated over multiple fields. (1.30.23)

  • Fixed server crashes when the symbol :R (of high-order function eachRight) took an incorrect number of arguments. (1.30.23)

  • Fixed errors when querying the table imported with loadText from a non UTF-8 formatted CSV file. (1.30.23)

  • Fixed incorrect results when applying the string function with byRow on a matrix. (1.30.23)

  • Fixed incorrect align results on series with non-increasing labels that contain duplicates. (1.30.23)

  • Fixed incorrect results of the parallel computation of peach for ignoring NULL values. (1.30.23)

  • Fixed memory leaks when calling resample. (1.30.23)

  • Fixed a bug where the corrMatrix function modified values of input arguments. (1.30.23)

  • Fixed the following issues with fromJson (1.30.23):

    • Server crashes caused by dictionary value being an empty JSON tuple.

    • Incorrect results caused by dictionary value being nested JSON tuples.

  • Fixed occasional row count mismatch errors when specifying both partition and byColName for function unionAll. (1.30.23)

  • Fixed an issue where streamEngineParserfailed to create streaming engines due to parsing errors if row-based metrics invoked functions with multiple return values. (1.30.23)

  • Fixed an issue where the subscriber consuming messages at a slower pace compared with other subscribers failed to read data. (1.30.23)

  • Fixed server crashes caused by ingesting an empty table into the left table of a lookup join engine. (1.30.23)

  • Fixed deadlocks when two nodes simultaneously call unsubscribeTable to cancel subscriptions to the same table on a remote node. (1.30.23)

  • Fixed incorrect results of createTimeSeriesEngine when specifying multiple columns for timeColumn and calculating on one of the time columns. (1.30.23)

  • Fixed an issue where calculations were not conducted after sorting within groups when order-sensitive functions were used in the select clause with context by and csort. (1.30.23)

  • Fixed errors when using aggregate functions on vector slices in the select clause with group by. (1.30.23)

  • Fixed an issue where a variable with the same name as a function view was incorrectly parsed in a SQL where clause if the and operator was used. (1.30.23)

  • Fixed server crashes when the variable after drop table did not exist. (1.30.23)

  • Fixed incorrect results when using the zigzag function in the select clause with context by. (1.30.23)

  • Fixed server crashes on Windows when applying group by to long strings. (1.30.23)

  • Fixed an issue with sqlDS data sources whereby specified partitions from the right table were absent in the generated output when joining two distributed tables. (1.30.23)