[ https://issues.apache.org/jira/browse/HIVE-20879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Lavati updated HIVE-20879: -------------------------------- Attachment: HIVE-20879.patch Status: Patch Available (was: Open) My proposed solution for this is to add a check inside ExprNodeGenericFuncDesc.newInstance for GenericUDFOPOr and GenericUDFOPAnd: If the given ObjectInspector would be a Void Type, create a Constant Boolean one instead w/ a null value. > Using null in a projection expression leads to CastException > ------------------------------------------------------------ > > Key: HIVE-20879 > URL: https://issues.apache.org/jira/browse/HIVE-20879 > Project: Hive > Issue Type: Bug > Reporter: Zoltan Haindrich > Assignee: David Lavati > Priority: Major > Attachments: HIVE-20879.patch > > > repro: > {code} > create table cx1(bool0 boolean); > select NULL or bool0 from cx1; > {code} > workaround(correct type of null): > {code} > select cast(NULL as boolean) or bool0 from cx1; > {code} > exception: > {code} > 2018-11-07T07:28:39,628 ERROR [3533166f-7174-45cd-9d9e-d487038cb6e0 main] > ql.Driver: FAILED: ClassCastEx > ception > org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableVoidObjectInspector > cannot be ca > st to > org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector > java.lang.ClassCastException: > org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableVoidObject > Inspector cannot be cast to > org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspect > or > at > org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPAnd.initialize(GenericUDFOPAnd.java:56) > at > org.apache.hadoop.hive.ql.udf.generic.GenericUDF.initializeAndFoldConstants(GenericUDF.java:1 > 48) > at > org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc.newInstance(ExprNodeGenericFuncDesc.ja > va:260) > at > org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.getXpathOrFuncExprN > odeDesc(TypeCheckProcFactory.java:1251) > at > org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.process(TypeCheckPr > ocFactory.java:1660) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:10 > 5) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)