2.00.13
Changes Affecting Storage or Version Rollback
In this release, rollbacks to previous versions are impossible after the following actions:
-
Using SQL DELETE or INSERT INTO statements in scripts involving function persistence (e.g., function views, scheduled jobs). This is due to changes in the persistence protocol for the two statements.
-
Adding a scheduled job, or triggering a checkpoint (which generates a jobCheckPoint.meta file in the sysmgmt directory) by adding/deleteing scheduled jobs.
System Impacts Caused by Bug Fixes
-
Modified the data types of columns “*_allowed“ and “*_denied“ returned by
getUserAccess
andgetGroupAccess
from STRING to BLOB. (2.00.13.3) -
Modified the behavior of
flatten
. The following operations are allowed since this release (2.00.13.3).-
Flattening a tuple containing NULL values.
flatten((3, NULL, 5)) // Error (previous releases): Couldn't flatten the vector because some elements of the vector have inconsistent types.' // Output (current release): [3,,5]
-
Flattening a tuple containing tuples and other data forms.
flatten([(1, "aa"), 2.5, 3]) // Error (previous releases): Couldn't flatten the vector because some elements of the vector have inconsistent types.' // Output (current release): [1,aa,2.5,3]
-
-
Modified the default value of snapshot parameter for the
restore
function from true to false. This change prevents potential deletion of non-backed up data during subsequent restores, enhancing data safety. -
Behavior change for type conversion of subarrays. Converting a subarray of the big array now returns
HUGE <DATATYPE> VECTOR
instead of the previously returnedFAST <DATATYPE> VECTOR
.x=bigarray(INT,10,10000000,1) subx=subarray(x, 0:5000) // convert the data type of subx and check its type typestr(char(subx)) // Output(previous releases): FAST CHAR VECTOR // Output(since this release): HUGE CHAR VECTOR
- Adjusted the result precision for functions
std
,stdp
,var
,varp
,skew
,kurtosis
and their related m- and tm-functions to match Python standards when the calculation involves extreme values. - Modified the behavior of
flatten
when handling a tuple of tuples:-
In previous releases, the tuple was flattened to a 1d vector.
-
Since this release, each tuple element is converted to a 1d vector and a tuple is returned.
list2 = (("aa", "bb", "cc"), ("dd", "ee", "ff")) flatten(list2) // Output (previous releases): STRING VECTOR:[`aa,`bb,`cc,`dd,`ee,`ff] // Output (current release): ANY VECTOR (["aa", "bb", "cc"], ["dd", "ee", "ff"])
-
-
In previous releases, a user-defined JIT function returning multiple scalars in definition would return a vector. Since this release, a tuple is returned.
@jit def f(a, b, c){ return a, b, c } a = 1 b = -1 c = int(NULL) typestr(f(a, b, c)) // Output (previous releases): FAST INT VECTOR // Output (current release): ANY VECTOR