Github user jinfengni commented on a diff in the pull request:
https://github.com/apache/drill/pull/452#discussion_r57998932
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/DateTypeFunctions.java
---
@@ -40,6 +42,41 @@
public class DateTypeFunctions {
+ /**
+ * Function to check if a varchar value can be cast to a date.
+ *
+ * At the time of writing this function, several other databases were
checked
+ * for behavior compatibility. There was not a consensus between
oracle and
+ * Sql server about the expected behavior of this function, and
Postgres
+ * lacks it completely.
+ *
+ * Sql Server appears to have both a DATEFORMAT and language locale
setting
+ * that can change the values accepted by this function. Oracle
appears to
+ * support several formats, some of which are not mentioned in the Sql
+ * Server docs. With the lack of standardization, we decided to
implement
+ * this function so that it would only consider date strings that
would be
+ * accepted by the cast function as valid.
+ */
+ @SuppressWarnings("unused")
+ @FunctionTemplate(name = "isdate", scope =
FunctionTemplate.FunctionScope.SIMPLE, nulls=NullHandling.INTERNAL,
+ costCategory = FunctionTemplate.FunctionCostCategory.COMPLEX)
+ public static class CastVarCharToDate implements DrillSimpleFunc {
+
+ @Param NullableVarCharHolder in;
--- End diff --
Do we need an implementation for non-nullable input, since it's using
NullHandling.INTERNAL?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---