fix: LEASTSQUARES func result overflow
This commit is contained in:
parent
2fef37a5cc
commit
fdb847fd36
|
@ -1576,9 +1576,13 @@ int32_t leastSQRFinalize(SqlFunctionCtx* pCtx, SSDataBlock* pBlock) {
|
||||||
|
|
||||||
param12 /= param[1][1];
|
param12 /= param[1][1];
|
||||||
|
|
||||||
char buf[512] = {0};
|
char buf[64] = {0};
|
||||||
size_t len =
|
size_t len = 0;
|
||||||
snprintf(varDataVal(buf), sizeof(buf) - VARSTR_HEADER_SIZE, "{slop:%.6lf, intercept:%.6lf}", param02, param12);
|
if (fabs(param02) > 1e6 || fabs(param12) > 1e6) {
|
||||||
|
len = snprintf(varDataVal(buf), sizeof(buf) - VARSTR_HEADER_SIZE, "{slop:%.6e, intercept:%.6e}", param02, param12);
|
||||||
|
} else {
|
||||||
|
len = snprintf(varDataVal(buf), sizeof(buf) - VARSTR_HEADER_SIZE, "{slop:%.6lf, intercept:%.6lf}", param02, param12);
|
||||||
|
}
|
||||||
varDataSetLen(buf, len);
|
varDataSetLen(buf, len);
|
||||||
|
|
||||||
colDataSetVal(pCol, currentRow, buf, pResInfo->isNullRes);
|
colDataSetVal(pCol, currentRow, buf, pResInfo->isNullRes);
|
||||||
|
|
|
@ -2428,8 +2428,12 @@ int32_t leastSQRScalarFunction(SScalarParam *pInput, int32_t inputNum, SScalarPa
|
||||||
matrix12 /= matrix[1][1];
|
matrix12 /= matrix[1][1];
|
||||||
|
|
||||||
char buf[64] = {0};
|
char buf[64] = {0};
|
||||||
size_t len = snprintf(varDataVal(buf), sizeof(buf) - VARSTR_HEADER_SIZE, "{slop:%.6lf, intercept:%.6lf}", matrix02,
|
size_t len = 0;
|
||||||
matrix12);
|
if (fabs(matrix02) > 1e6 || fabs(matrix12) > 1e6) {
|
||||||
|
len = snprintf(varDataVal(buf), sizeof(buf) - VARSTR_HEADER_SIZE, "{slop:%.6e, intercept:%.6e}", matrix02, matrix12);
|
||||||
|
} else {
|
||||||
|
len = snprintf(varDataVal(buf), sizeof(buf) - VARSTR_HEADER_SIZE, "{slop:%.6lf, intercept:%.6lf}", matrix02, matrix12);
|
||||||
|
}
|
||||||
varDataSetLen(buf, len);
|
varDataSetLen(buf, len);
|
||||||
colDataSetVal(pOutputData, 0, buf, false);
|
colDataSetVal(pOutputData, 0, buf, false);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue