zabetak commented on a change in pull request #1982:
URL: https://github.com/apache/hive/pull/1982#discussion_r578457991
##########
File path:
ql/src/java/org/apache/hadoop/hive/ql/udf/TimestampCastRestrictorResolver.java
##########
@@ -45,7 +45,7 @@
public TimestampCastRestrictorResolver(UDFMethodResolver parentResolver) {
this.parentResolver = parentResolver;
SessionState ss = SessionState.get();
- if (ss != null &&
ss.getConf().getBoolVar(ConfVars.HIVE_STRICT_TIMESTAMP_CONVERSION)) {
+ if (ss != null &&
ss.getConf().getBoolVar(ConfVars.HIVE_STRICT_CHECKS_TYPE_SAFETY)) {
Review comment:
Small observation: the first example does not reflect the situation in
current master. In HIVE-23100, the checks were moved from
`ExprNodeGenericFuncDesc` to `TypeCheckProcFactory`.
It is true that at the moment `UDFToBoolean`, `UDFToByte`, `UDFToDouble`,
etc., are not checked by `TypeCheckProcFactory`; I am not sure if this needs to
change or not. In that sense if we want to enforce type checks we need to do it
in another way as it is done here with the resolver.
The timestamp resolver only checks the case for timestamp/dates but there
are other lossy conversions (e.g., BigInt to double) for which we are doing
nothing. I assume that if somebody does `CAST( bigint as double)` the query
will run without raising an error even if strict checks are enabled.
Taking it on the other way around currently if somebody does `CAST (date as
double)` the query will run or fail depending on the value of the strict checks
property.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]