Closed dharhas closed 5 years ago
Current state:
Alex left this comment to UDF PR:
"""
I think we want to keep this test behavior, as discussed in Slack:
SELECT TRUNCATE(2016, 1) FROM test LIMIT 1;
in current master fails because 2016
is a smallint (int16_t
) constant
but is interpreted as just an INTEGER
in calcite
so we have TRUNCATE()
returning INTEGER
in calcite, but smallint
in the specialization
this seems kinda like a nonsense test...
on the other hand, we do have to worry about the following problem:
if you define
EXTENSION_NOINLINE
int32_t udf_diff(const int32_t x, const int32_t y) {
return x - y;
}
and then pass it 64-bit values, it will just truncate them to 32-bits silently this happens now, so I am not saying it is a blocker for pearu's work but we want to make sure that we are doing the appropriate casts, and not allowing automatic narrowing casts, in the future. """ I have to look at how to prevent automatic truncation.
The UDF PR has been approved and merged to omniscidb-internal repo.
Omnisci Core - complete the endpoint work to allow registration