package com.livingsocial.hive.udf; import org.apache.hadoop.hive.ql.udf.UDFLike; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.io.BooleanWritable; import org.apache.hadoop.io.Text; @Description( name = "ilike", value = "_FUNC_(str, pattern) - Checks if str matches pattern", extended = "Example:\n" + " > SELECT a.* FROM srcpart a WHERE a.hr _FUNC_ '%2' LIMIT 1;\n" + " 27 val_27 2008-04-08 12" ) public class ILike extends UDFLike { public BooleanWritable evaluate(Text s, Text likePattern) { if(s != null && likePattern != null) { s.set(s.toString().toLowerCase()); likePattern.set(likePattern.toString().toLowerCase()); } return super.evaluate(s, likePattern); } }