Index: ql/src/test/results/clientpositive/udf_logic_java_boolean.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_logic_java_boolean.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_logic_java_boolean.q.out (revision 0) @@ -0,0 +1,177 @@ +PREHOOK: query: EXPLAIN +CREATE TEMPORARY FUNCTION test_udf_get_java_boolean AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaBoolean' +PREHOOK: type: CREATEFUNCTION +POSTHOOK: query: EXPLAIN +CREATE TEMPORARY FUNCTION test_udf_get_java_boolean AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaBoolean' +POSTHOOK: type: CREATEFUNCTION +ABSTRACT SYNTAX TREE: + (TOK_CREATEFUNCTION test_udf_get_java_boolean 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaBoolean') + +STAGE DEPENDENCIES: + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-0 + + +PREHOOK: query: CREATE TEMPORARY FUNCTION test_udf_get_java_boolean AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaBoolean' +PREHOOK: type: CREATEFUNCTION +POSTHOOK: query: CREATE TEMPORARY FUNCTION test_udf_get_java_boolean AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaBoolean' +POSTHOOK: type: CREATEFUNCTION +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("false") and True limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-41-57_461_9179682304696724129/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("false") and True limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-41-57_461_9179682304696724129/-mr-10000 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("true") and True limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-00_287_9146964130139785682/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("true") and True limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-00_287_9146964130139785682/-mr-10000 +1 +PREHOOK: query: select 1 from src where True and test_udf_get_java_boolean("false") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-03_753_4024266451997121051/-mr-10000 +POSTHOOK: query: select 1 from src where True and test_udf_get_java_boolean("false") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-03_753_4024266451997121051/-mr-10000 +PREHOOK: query: select 1 from src where False and test_udf_get_java_boolean("false") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-06_306_2987205972955927857/-mr-10000 +POSTHOOK: query: select 1 from src where False and test_udf_get_java_boolean("false") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-06_306_2987205972955927857/-mr-10000 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("true") and test_udf_get_java_boolean("true") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-08_843_7591463527783169702/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("true") and test_udf_get_java_boolean("true") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-08_843_7591463527783169702/-mr-10000 +1 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("true") and test_udf_get_java_boolean("false") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-11_377_3836369573695228865/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("true") and test_udf_get_java_boolean("false") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-11_377_3836369573695228865/-mr-10000 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("false") and test_udf_get_java_boolean("true") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-13_909_6479690639258331233/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("false") and test_udf_get_java_boolean("true") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-13_909_6479690639258331233/-mr-10000 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("false") and test_udf_get_java_boolean("false") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-16_423_8142664197664600929/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("false") and test_udf_get_java_boolean("false") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-16_423_8142664197664600929/-mr-10000 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("false") or True limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-18_941_8663995139474543010/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("false") or True limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-18_941_8663995139474543010/-mr-10000 +1 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("true") or True limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-21_457_3004117207132300144/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("true") or True limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-21_457_3004117207132300144/-mr-10000 +1 +PREHOOK: query: select 1 from src where True or test_udf_get_java_boolean("false") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-23_963_4873201464515999264/-mr-10000 +POSTHOOK: query: select 1 from src where True or test_udf_get_java_boolean("false") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-23_963_4873201464515999264/-mr-10000 +1 +PREHOOK: query: select 1 from src where False or test_udf_get_java_boolean("false") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-26_429_8040501046222406495/-mr-10000 +POSTHOOK: query: select 1 from src where False or test_udf_get_java_boolean("false") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-26_429_8040501046222406495/-mr-10000 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("true") or test_udf_get_java_boolean("true") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-28_928_2147856539710781117/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("true") or test_udf_get_java_boolean("true") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-28_928_2147856539710781117/-mr-10000 +1 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("true") or test_udf_get_java_boolean("false") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-31_512_1998172108754414675/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("true") or test_udf_get_java_boolean("false") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-31_512_1998172108754414675/-mr-10000 +1 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("false") or test_udf_get_java_boolean("true") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-33_970_7950315414198379248/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("false") or test_udf_get_java_boolean("true") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-33_970_7950315414198379248/-mr-10000 +1 +PREHOOK: query: select 1 from src where test_udf_get_java_boolean("false") or test_udf_get_java_boolean("false") limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-36_476_5015264323628296344/-mr-10000 +POSTHOOK: query: select 1 from src where test_udf_get_java_boolean("false") or test_udf_get_java_boolean("false") limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-36_476_5015264323628296344/-mr-10000 +PREHOOK: query: select 1 from src where not(test_udf_get_java_boolean("false")) limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-38_982_5489941401382088698/-mr-10000 +POSTHOOK: query: select 1 from src where not(test_udf_get_java_boolean("false")) limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-38_982_5489941401382088698/-mr-10000 +1 +PREHOOK: query: select 1 from src where not(test_udf_get_java_boolean("true")) limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-41_489_2148422377161206207/-mr-10000 +POSTHOOK: query: select 1 from src where not(test_udf_get_java_boolean("true")) limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_22-42-41_489_2148422377161206207/-mr-10000 +PREHOOK: query: DROP TEMPORARY FUNCTION test_udf_get_java_boolean +PREHOOK: type: DROPFUNCTION +POSTHOOK: query: DROP TEMPORARY FUNCTION test_udf_get_java_boolean +POSTHOOK: type: DROPFUNCTION Index: ql/src/test/results/clientpositive/udf_compare_java_string.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_compare_java_string.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_compare_java_string.q.out (revision 0) @@ -0,0 +1,42 @@ +PREHOOK: query: EXPLAIN +CREATE TEMPORARY FUNCTION test_udf_get_java_string AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString' +PREHOOK: type: CREATEFUNCTION +POSTHOOK: query: EXPLAIN +CREATE TEMPORARY FUNCTION test_udf_get_java_string AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString' +POSTHOOK: type: CREATEFUNCTION +ABSTRACT SYNTAX TREE: + (TOK_CREATEFUNCTION test_udf_get_java_string 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString') + +STAGE DEPENDENCIES: + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-0 + + +PREHOOK: query: CREATE TEMPORARY FUNCTION test_udf_get_java_string AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString' +PREHOOK: type: CREATEFUNCTION +POSTHOOK: query: CREATE TEMPORARY FUNCTION test_udf_get_java_string AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString' +POSTHOOK: type: CREATEFUNCTION +PREHOOK: query: select * from src where value = test_udf_get_java_string("val_66") +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_23-08-48_976_920151581457241016/-mr-10000 +POSTHOOK: query: select * from src where value = test_udf_get_java_string("val_66") +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_23-08-48_976_920151581457241016/-mr-10000 +66 val_66 +PREHOOK: query: select * from (select * from src where value = 'val_66' or value = 'val_8') t where value <> test_udf_get_java_string("val_8") +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/sdong/hive_2010-11-15_23-08-51_812_2875394296817708788/-mr-10000 +POSTHOOK: query: select * from (select * from src where value = 'val_66' or value = 'val_8') t where value <> test_udf_get_java_string("val_8") +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/sdong/hive_2010-11-15_23-08-51_812_2875394296817708788/-mr-10000 +66 val_66 +PREHOOK: query: DROP TEMPORARY FUNCTION test_udf_get_java_boolean +PREHOOK: type: DROPFUNCTION +POSTHOOK: query: DROP TEMPORARY FUNCTION test_udf_get_java_boolean +POSTHOOK: type: DROPFUNCTION Index: ql/src/test/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTestGetJavaString.java =================================================================== --- ql/src/test/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTestGetJavaString.java (revision 0) +++ ql/src/test/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTestGetJavaString.java (revision 0) @@ -0,0 +1,52 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.udf.generic; + +import org.apache.hadoop.hive.ql.exec.UDFArgumentException; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector; + +/** + * A test GenericUDF to return native Java's string type + */ +public class GenericUDFTestGetJavaString extends GenericUDF { + ObjectInspector[] argumentOIs; + + @Override + public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { + argumentOIs = arguments; + return PrimitiveObjectInspectorFactory.javaStringObjectInspector; + } + + @Override + public Object evaluate(DeferredObject[] arguments) throws HiveException { + if (arguments[0].get() == null) { + return null; + } + return ((StringObjectInspector) argumentOIs[0]).getPrimitiveJavaObject(arguments[0].get()); + } + + @Override + public String getDisplayString(String[] children) { + assert (children.length == 1); + return "GenericUDFTestGetJavaString(" + children[0] + ")"; + } +} Index: ql/src/test/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTestGetJavaBoolean.java =================================================================== --- ql/src/test/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTestGetJavaBoolean.java (revision 0) +++ ql/src/test/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTestGetJavaBoolean.java (revision 0) @@ -0,0 +1,56 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.udf.generic; + +import org.apache.hadoop.hive.ql.exec.UDFArgumentException; +import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory; +import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector; + +/** + * A test GenericUDF to return native Java's boolean type + */ +public class GenericUDFTestGetJavaBoolean extends GenericUDF { + ObjectInspector[] argumentOIs; + + @Override + public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { + argumentOIs = arguments; + return PrimitiveObjectInspectorFactory.javaBooleanObjectInspector; + } + + @Override + public Object evaluate(DeferredObject[] arguments) throws HiveException { + String input = ((StringObjectInspector) argumentOIs[0]).getPrimitiveJavaObject(arguments[0].get()); + if (input.equalsIgnoreCase("true")) { + return Boolean.TRUE; + } else if (input.equalsIgnoreCase("false")) { + return false; + } else { + return null; + } + } + + @Override + public String getDisplayString(String[] children) { + assert (children.length == 1); + return "TestGetJavaBoolean(" + children[0] + ")"; + } +} Index: ql/src/test/queries/clientpositive/udf_logic_java_boolean.q =================================================================== --- ql/src/test/queries/clientpositive/udf_logic_java_boolean.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_logic_java_boolean.q (revision 0) @@ -0,0 +1,28 @@ +EXPLAIN +CREATE TEMPORARY FUNCTION test_udf_get_java_boolean AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaBoolean'; + +CREATE TEMPORARY FUNCTION test_udf_get_java_boolean AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaBoolean'; + +select 1 from src where test_udf_get_java_boolean("false") and True limit 1; +select 1 from src where test_udf_get_java_boolean("true") and True limit 1; +select 1 from src where True and test_udf_get_java_boolean("false") limit 1; +select 1 from src where False and test_udf_get_java_boolean("false") limit 1; +select 1 from src where test_udf_get_java_boolean("true") and test_udf_get_java_boolean("true") limit 1; +select 1 from src where test_udf_get_java_boolean("true") and test_udf_get_java_boolean("false") limit 1; +select 1 from src where test_udf_get_java_boolean("false") and test_udf_get_java_boolean("true") limit 1; +select 1 from src where test_udf_get_java_boolean("false") and test_udf_get_java_boolean("false") limit 1; + +select 1 from src where test_udf_get_java_boolean("false") or True limit 1; +select 1 from src where test_udf_get_java_boolean("true") or True limit 1; +select 1 from src where True or test_udf_get_java_boolean("false") limit 1; +select 1 from src where False or test_udf_get_java_boolean("false") limit 1; +select 1 from src where test_udf_get_java_boolean("true") or test_udf_get_java_boolean("true") limit 1; +select 1 from src where test_udf_get_java_boolean("true") or test_udf_get_java_boolean("false") limit 1; +select 1 from src where test_udf_get_java_boolean("false") or test_udf_get_java_boolean("true") limit 1; +select 1 from src where test_udf_get_java_boolean("false") or test_udf_get_java_boolean("false") limit 1; + +select 1 from src where not(test_udf_get_java_boolean("false")) limit 1; +select 1 from src where not(test_udf_get_java_boolean("true")) limit 1; + + +DROP TEMPORARY FUNCTION test_udf_get_java_boolean; Index: ql/src/test/queries/clientpositive/udf_compare_java_string.q =================================================================== --- ql/src/test/queries/clientpositive/udf_compare_java_string.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_compare_java_string.q (revision 0) @@ -0,0 +1,10 @@ +EXPLAIN +CREATE TEMPORARY FUNCTION test_udf_get_java_string AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString'; + +CREATE TEMPORARY FUNCTION test_udf_get_java_string AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFTestGetJavaString'; + +select * from src where value = test_udf_get_java_string("val_66"); +select * from (select * from src where value = 'val_66' or value = 'val_8') t where value <> test_udf_get_java_string("val_8"); + + +DROP TEMPORARY FUNCTION test_udf_get_java_boolean; Index: ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java (revision 10249) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java (working copy) @@ -50,7 +50,7 @@ @Override public Object evaluate(DeferredObject[] arguments) throws HiveException { boolean bool_a0 = false, bool_a1 = false; - BooleanWritable a0 = (BooleanWritable) arguments[0].get(); + Object a0 = arguments[0].get(); if (a0 != null) { bool_a0 = boi0.get(a0); if (bool_a0 == true) { @@ -59,7 +59,7 @@ } } - BooleanWritable a1 = (BooleanWritable) arguments[1].get(); + Object a1 = arguments[1].get(); if (a1 != null) { bool_a1 = boi1.get(a1); if (bool_a1 == true) { Index: ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPAnd.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPAnd.java (revision 10249) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPAnd.java (working copy) @@ -49,7 +49,7 @@ @Override public Object evaluate(DeferredObject[] arguments) throws HiveException { boolean bool_a0 = false, bool_a1 = false; - BooleanWritable a0 = (BooleanWritable) arguments[0].get(); + Object a0 = arguments[0].get(); if (a0 != null) { bool_a0 = boi0.get(a0); if (bool_a0 == false) { @@ -58,7 +58,7 @@ } } - BooleanWritable a1 = (BooleanWritable) arguments[1].get(); + Object a1 = arguments[1].get(); if (a1 != null) { bool_a1 = boi1.get(a1); if (bool_a1 == false) {