diff --git ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java index 793e8a7..4889b2e 100755 --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java @@ -184,7 +184,7 @@ public BooleanWritable evaluate(Text s, Text likePattern) { parseSimplePattern(strLikePattern); if (type == PatternType.COMPLEX) { - p = Pattern.compile(likePatternToRegExp(strLikePattern)); + p = Pattern.compile(likePatternToRegExp(strLikePattern), Pattern.DOTALL); } } diff --git ql/src/test/queries/clientpositive/udf_like.q ql/src/test/queries/clientpositive/udf_like.q index d7728e7..a4a7251 100644 --- ql/src/test/queries/clientpositive/udf_like.q +++ ql/src/test/queries/clientpositive/udf_like.q @@ -23,3 +23,8 @@ SELECT '1+2' LIKE '_+_', '|||' LIKE '|_|', '+++' LIKE '1+_' FROM src tablesample (1 rows); + + +CREATE TEMPORARY TABLE SplitLines(`id` string) STORED AS ORC; +INSERT INTO SplitLines SELECT 'withdraw\ncash'; +SELECT `id` LIKE '%withdraw%cash' FROM SplitLines ; diff --git ql/src/test/results/clientpositive/udf_like.q.out ql/src/test/results/clientpositive/udf_like.q.out index 3a131ac..8a0bb98 100644 --- ql/src/test/results/clientpositive/udf_like.q.out +++ ql/src/test/results/clientpositive/udf_like.q.out @@ -84,3 +84,29 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@src #### A masked pattern was here #### true true false true false +PREHOOK: query: CREATE TEMPORARY TABLE SplitLines(`id` string) STORED AS ORC +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@SplitLines +POSTHOOK: query: CREATE TEMPORARY TABLE SplitLines(`id` string) STORED AS ORC +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@SplitLines +PREHOOK: query: INSERT INTO SplitLines SELECT 'withdraw\ncash' +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@splitlines +POSTHOOK: query: INSERT INTO SplitLines SELECT 'withdraw\ncash' +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@splitlines +POSTHOOK: Lineage: splitlines.id SIMPLE [] +PREHOOK: query: SELECT `id` LIKE '%withdraw%cash' FROM SplitLines +PREHOOK: type: QUERY +PREHOOK: Input: default@splitlines +#### A masked pattern was here #### +POSTHOOK: query: SELECT `id` LIKE '%withdraw%cash' FROM SplitLines +POSTHOOK: type: QUERY +POSTHOOK: Input: default@splitlines +#### A masked pattern was here #### +true