[ https://issues.apache.org/jira/browse/DRILL-5697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16133510#comment-16133510 ]
ASF GitHub Bot commented on DRILL-5697: --------------------------------------- Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/907#discussion_r134032668 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/RegexpUtil.java --- @@ -76,12 +113,24 @@ public static String sqlToRegexLike( /** * Translates a SQL LIKE pattern to Java regex pattern. */ - public static String sqlToRegexLike( + public static sqlPatternInfo sqlToRegexLike( String sqlPattern, char escapeChar) { int i; final int len = sqlPattern.length(); final StringBuilder javaPattern = new StringBuilder(len + len); + final StringBuilder simplePattern = new StringBuilder(len); + + // Figure out the pattern type and build simplePatternString + // as we are going through the sql pattern string + // to build java regex pattern string. This is better instead of using + // regex later for determining if a pattern is simple or not. + // Saves CPU cycles. + sqlPatternType patternType = sqlPatternType.NOT_SIMPLE; + boolean startsWith = false; + boolean endsWith = false; + boolean notSimple = false; --- End diff -- These are not independent states. Probably better to use your enum, with the initial value as null (unknown). > Improve performance of filter operator for pattern matching > ----------------------------------------------------------- > > Key: DRILL-5697 > URL: https://issues.apache.org/jira/browse/DRILL-5697 > Project: Apache Drill > Issue Type: Improvement > Components: Execution - Flow > Affects Versions: 1.11.0 > Reporter: Padma Penumarthy > Assignee: Padma Penumarthy > > Queries using filter with sql like operator use Java regex library for > pattern matching. However, for cases like %abc (ends with abc), abc% (starts > with abc), %abc% (contains abc), it is observed that implementing these cases > with simple code instead of using regex library provides good performance > boost (4-6x). Idea is to use special case code for simple, common cases and > fall back to Java regex library for complicated ones. That will provide good > performance benefit for most common cases. -- This message was sent by Atlassian JIRA (v6.4.14#64029)