Added better logging for invalid parameters, added test case

This commit is contained in:
Michal Tabaszewski 2024-08-28 20:08:12 +02:00
parent 20f8176a2d
commit f25fa9fa58
3 changed files with 14 additions and 1 deletions

View File

@ -237,7 +237,14 @@ private:
}
else
{
throw Exception(ErrorCodes::BAD_ARGUMENTS, "Parameter number {} of function {} is expected to be constant or ColumnVector", parameter_number, getName());
std::string expectedType;
if(std::is_same_v<UInt64, ResultType>)
expectedType = "UInt64";
else if(std::is_same_v<Float64, ResultType>)
expectedType = "Float64";
throw Exception(ErrorCodes::BAD_ARGUMENTS, "Parameter number {} of function {} is expected to be {} but is {}",
parameter_number, getName(), expectedType, col->getName());
}
if (isNaN(parameter) || !std::isfinite(parameter))

View File

@ -10,3 +10,5 @@ Ok
Ok
Ok
Ok
Ok
Ok

View File

@ -22,3 +22,7 @@ SELECT DISTINCT if (a >= toFloat64(0), 'Ok', 'Fail') FROM (SELECT randNegativeBi
SELECT DISTINCT if (a >= toFloat64(0), 'Ok', 'Fail') FROM (SELECT randPoisson(44) AS a FROM numbers(100000));
# No errors
SELECT randUniform(1, 2, 1), randNormal(0, 1, 'abacaba'), randLogNormal(0, 10, 'b'), randChiSquared(1, 1), randStudentT(7, '8'), randFisherF(23, 42, 100), randBernoulli(0.5, 2), randBinomial(3, 0.5, 1), randNegativeBinomial(3, 0.5, 2), randPoisson(44, 44) FORMAT Null;
# Values should be >= 0
SELECT DISTINCT if (a >= toFloat64(-10), 'Ok', 'Fail') FROM (SELECT randNormal(randNormal(0, 1), randUniform(1, 2)) AS a FROM numbers(10000));
# Values should be >= 0
SELECT DISTINCT if (a >= toFloat64(0), 'Ok', 'Fail') FROM (SELECT randUniform(randUniform(0, 1), randUniform(1, 2)) AS a FROM numbers(10000));