package com.facebook.hive.udf;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
/**
* Converts a hex string to base-10 integer
*/
@Description(name = "udfhex2dec",
value = "_FUNC_(string) - Convert hex (string form) to decimal",
extended = "Example:\n"
+ " > SELECT HEX2DEC('D') FROM hex;\n")
public class UDFHex2Dec extends UDF {
public Long evaluate(String hex_string) {
try {
return Long.valueOf(hex_string, 16).longValue();
} catch(NumberFormatException e) {
// This will catch null input values or invalid hex strings like 'g'
return null;
}
}
}