-Re: Exception while implementing drill trigonometric functions (For DRILL-219). Need tips.
That error stack says that the SIN function is not known to Optiq's SQL validator. Optiq's validator is driven by a table of functions and operators, but Drill doesn't currently have a way to add to that table.
Since SIN is a generally useful function, it should be built-in in Optiq. You could do that by modifying SqlStdOperatorTable and adding a field similar to the one that defines the SQRT operator:
public static final SqlFunction sqrtFunc new SqlFunction(
I believe the validation rules are identical for SQRT and SIN.
However we should also add a mechanism to Drill to allow it to add its own functions (including user-defined functions) to Optiq's SQL validator on the fly.