/tags/release-0.1-rc2/hive/external/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java
Java | 87 lines | 62 code | 5 blank | 20 comment | 14 complexity | 18e663f76f63fabde206a74b4d6e843f MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, JSON, CPL-1.0
- /**
- * 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.Description;
- import org.apache.hadoop.hive.ql.metadata.HiveException;
- import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
- /**
- * GenericUDF Class for operation Not EQUAL.
- */
- @Description(name = "<>", value = "a _FUNC_ b - Returns TRUE if a is not equal to b")
- public class GenericUDFOPNotEqual extends GenericUDFBaseCompare {
- public GenericUDFOPNotEqual(){
- this.opName = "NOT EQUAL";
- this.opDisplayName = "<>";
- }
- @Override
- public Object evaluate(DeferredObject[] arguments) throws HiveException {
- Object o0,o1;
- o0 = arguments[0].get();
- if (o0 == null) {
- return null;
- }
- o1 = arguments[1].get();
- if (o1 == null) {
- return null;
- }
- switch(compareType) {
- case COMPARE_TEXT:
- result.set(!soi0.getPrimitiveWritableObject(o0).equals(
- soi1.getPrimitiveWritableObject(o1)));
- break;
- case COMPARE_INT:
- result.set(ioi0.get(o0) != ioi1.get(o1));
- break;
- case COMPARE_LONG:
- result.set(loi0.get(o0) != loi1.get(o1));
- break;
- case COMPARE_BYTE:
- result.set(byoi0.get(o0) != byoi1.get(o1));
- break;
- case COMPARE_BOOL:
- result.set(boi0.get(o0) != boi1.get(o1));
- break;
- case COMPARE_STRING:
- result.set(!soi0.getPrimitiveJavaObject(o0).equals(
- soi1.getPrimitiveJavaObject(o1)));
- break;
- case SAME_TYPE:
- result.set(ObjectInspectorUtils.compare(
- o0, argumentOIs[0], o1, argumentOIs[1]) != 0);
- break;
- default:
- Object converted_o0 = converter0.convert(o0);
- if (converted_o0 == null) {
- return null;
- }
- Object converted_o1 = converter1.convert(o1);
- if (converted_o1 == null) {
- return null;
- }
- result.set(ObjectInspectorUtils.compare(
- converted_o0, compareOI,
- converted_o1, compareOI) != 0);
- }
- return result;
- }
- }