Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Drill >> mail # dev >> Exception while implementing drill trigonometric functions (For DRILL-219). Need tips.


Copy link to this message
-
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(
            "SQRT",
            SqlKind.OTHER_FUNCTION,
            SqlTypeStrategies.rtiNullableDouble,
            null,
            SqlTypeStrategies.otcNumeric,
            SqlFunctionCategory.Numeric);

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.

Julian