Я пытаюсь создать пользовательскую функцию для Apache Drill (v1.15).
При использовании десятичного числа в качестве выходного типа данных происходит сбой даже в самом простом примере.При использовании других типов данных (int, float ..) он работает хорошо.
Есть ли какой-нибудь простой способ, как заставить десятичные дроби работать как выходные данные UDF?
@FunctionTemplate(
name = "testing_udf",
scope = FunctionTemplate.FunctionScope.SIMPLE,
nulls = FunctionTemplate.NullHandling.NULL_IF_NULL
)
public class TestingUdfFunction implements DrillSimpleFunc {
@Param
Decimal18Holder input;
@Output
Decimal18Holder out;
public void setup() {
}
public void eval() {
out.precision = input.precision;
out.scale = input.scale;
out.value = input.value;
}
}
Вызов SQL:
SELECT testing_udf(6.66);
> VALIDATION ERROR: Value 7 overflows specified precision 0 with scale 0.